using Baci.Net.ToolKit.ArcGISProGeoprocessor.Models;
using Baci.Net.ToolKit.ArcGISProGeoprocessor.Models.Attributes;
using Baci.Net.ToolKit.ArcGISProGeoprocessor.Models.Attributes.DomainAttributes;
using Baci.Net.ToolKit.ArcGISProGeoprocessor.Models.Enums;
using System.Collections.Generic;
using System.ComponentModel;

namespace Baci.ArcGIS._ReadyToUseTools._NetworkAnalysis
{
    /// <summary>
    /// <para>Solve Location Allocation</para>
    /// <para>Chooses the best location or locations from a set of input locations by assigning demand points to input facilities in a way that allocates the most demand to facilities and minimizes overall travel.</para>
    /// <para>通过将需求点分配给输入设施点，从而从一组输入位置中选择一个或多个最佳位置，从而将最大需求分配给设施点并最大程度地减少整体行程。</para>
    /// </summary>    
    [DisplayName("Solve Location Allocation")]
    public class SolveLocationAllocation : AbstractGPProcess
    {
        /// <summary>
        /// 无参构造
        /// </summary>
        public SolveLocationAllocation()
        {

        }

        /// <summary>
        /// 有参构造
        /// </summary>
        /// <param name="_Facilities">
        /// <para>Facilities</para>
        /// <para><xdoc>
        ///   <para>Specify one or more facilities that the solver will choose from during the analysis. The solver identifies the best facilities to allocate demand in the most efficient way according to the problem type and criteria you specify.</para>
        ///   <para>In a competitive analysis in which you try to find the best locations in the face of competition, the facilities of the competitors are specified here as well.</para>
        ///   <para>When defining the facilities, you can set properties for each—such as its name or type—using the following attributes:</para>
        ///   <para>Name</para>
        ///   <para>The name of the facility. The name is included in the name of output allocation lines if the facility is part of the solution.</para>
        ///   <para>FacilityType</para>
        ///   <para>Specifies whether the facility is a candidate, required, or a competitor facility. The field value is specified as one of the following integers (use the numeric code, not the name in parentheses):
        ///   <bulletList>
        ///     <bullet_item>0 (Candidate)—A facility that may be part of the solution.  </bullet_item><para/>
        ///     <bullet_item>1 (Required)—A facility that must be part of the solution.  </bullet_item><para/>
        ///     <bullet_item>2 (Competitor)—A rival facility that potentially removes demand from your facilities. Competitor facilities are specific to the maximize market share and target market share problem types; they are ignored in other problem types.  </bullet_item><para/>
        ///   </bulletList>
        ///   </para>
        ///   <para>Weight</para>
        ///   <para>The relative weighting of the facility, which is used to rate the attractiveness, desirability, or bias of one facility compared to another.</para>
        ///   <para>For example, a value of 2.0 may capture the preference of customers who prefer, at a ratio of 2 to 1, shopping in one facility over another facility. Factors that potentially affect facility weight include square footage, neighborhood, and age of the building. Weight values other than one are only honored by the maximize market share and target market share problem types; they are ignored in other problem types.</para>
        ///   <para>Cutoff</para>
        ///   <para>The impedance value at which to stop searching for demand points from a given facility. The demand point can't be allocated to a facility that is beyond the value indicated here.</para>
        ///   <para>This attribute allows you to specify a different cutoff value for each demand point. For example, you may find that people in rural areas are willing to travel up to 10 miles to reach a facility, while urbanites are only willing to travel up to 2 miles. You can model this behavior by setting the Cutoff value for all demand points that are in rural areas to 10 and setting the Cutoff value of the demand points in urban areas to 2.</para>
        ///   <para>Capacity</para>
        ///   <para>The Capacity field is specific to the maximize capacitated coverage problem type; the other problem types ignore this field.</para>
        ///   <para>Capacity specifies how much weighted demand the facility is capable of supplying. Excess demand won't be allocated to a facility even if that demand is within the facility's default measurement cutoff.</para>
        ///   <para>Any value assigned to the Capacity field overrides the Default Capacity parameter (Default_Capacity in Python) for the given facility.</para>
        ///   <para>CurbApproach</para>
        ///   <para>Specifies the direction a vehicle may arrive at or depart from the facility. The field value is specified as one of the following integers (use the numeric code, not the name in parentheses):</para>
        ///   <para>
        ///     <bulletList>
        ///       <bullet_item>0 (Either side of vehicle)—The facility can be visited from either the right or left side of the vehicle.</bullet_item><para/>
        ///       <bullet_item>1 (Right side of vehicle)—Arrive at or depart the facility so it is on the right side of the vehicle. This is typically used for vehicles such as buses that must arrive with the bus stop on the right-hand side so passengers can disembark at the curb.</bullet_item><para/>
        ///       <bullet_item>2 (Left side of vehicle)—Arrive at or depart the facility so it is on the left side of the vehicle. When the vehicle approaches and departs the facility, the curb must be on the left side of the vehicle. This is typically used for vehicles such as buses that must arrive with the bus stop on the left-hand side so passengers can disembark at the curb.</bullet_item><para/>
        ///     </bulletList>
        ///   </para>
        ///   <para>The CurbApproach attribute is designed to work with both types of national driving standards: right-hand traffic (United States) and left-hand traffic (United Kingdom). First, consider a facility on the left side of a vehicle. It is always on the left side regardless of whether the vehicle travels on the left or right half of the road. What may change with national driving standards is your decision to approach a facility from one of two directions, that is, so it ends up on the right or left side of the vehicle. For example, if you want to arrive at a facility and not have a lane of traffic between the vehicle and the incident, choose 1 (Right side of vehicle) in the United States and 2 (Left side of vehicle) in the United Kingdom.</para>
        ///   <para>Bearing</para>
        ///   <para>The direction in which a point is moving. The units are degrees and are measured clockwise from true north. This field is used in conjunction with the BearingTol field.</para>
        ///   <para>Bearing data is usually sent automatically from a mobile device equipped with a GPS receiver. Try to include bearing data if you are loading an input location that is moving, such as a pedestrian or a vehicle.</para>
        ///   <para>Using this field tends to prevent adding locations to the wrong edges, which can occur when a vehicle is near an intersection or an overpass, for example. Bearing also helps the tool determine on which side of the street the point is.</para>
        ///   <para>BearingTol</para>
        ///   <para>The bearing tolerance value creates a range of acceptable bearing values when locating moving points on an edge using the Bearing field. If the Bearing field value is within the range of acceptable values that are generated from the bearing tolerance on an edge, the point can be added as a network location there; otherwise, the closest point on the next-nearest edge is evaluated.</para>
        ///   <para>The units are in degrees, and the default value is 30. Values must be greater than 0 and less than 180. A value of 30 means that when Network Analyst attempts to add a network location on an edge, a range of acceptable bearing values is generated 15 degrees to either side of the edge (left and right) and in both digitized directions of the edge.</para>
        ///   <para>NavLatency</para>
        ///   <para>This field is only used in the solve process if the Bearing and BearingTol fields also have values; however, entering a NavLatency field value is optional, even when values are present in Bearing and BearingTol. NavLatency indicates how much cost is expected to elapse from the moment GPS information is sent from a moving vehicle to a server and the moment the processed route is received by the vehicle's navigation device.</para>
        ///   <para>The units of NavLatency are the same as the units of the impedance attribute.</para>
        /// </xdoc></para>
        /// <para><xdoc>
        ///   <para>指定求解器在分析期间将从中选择的一个或多个设施点。求解程序根据您指定的问题类型和条件，确定以最有效的方式分配需求的最佳设施点。</para>
        ///   <para>在竞争分析中，您试图在竞争中找到最佳位置，此处还指定了竞争对手的设施。</para>
        ///   <para>定义设施点时，可以使用以下属性设置每个设施点的属性，例如其名称或类型：</para>
        ///   <para>名字</para>
        ///   <para>设施的名称。如果设施是解决方案的一部分，则该名称将包含在输出分配行的名称中。</para>
        ///   <para>设施类型</para>
        /// <para>指定设施是候选设施、必需设施还是竞争对手设施。字段值指定为以下整数之一（使用数字代码，而不是括号中的名称）：
        ///   <bulletList>
        ///     <bullet_item>0（候选）- 可能作为解决方案一部分的设施。</bullet_item><para/>
        ///     <bullet_item>1（必需）- 必须是解决方案一部分的设施。</bullet_item><para/>
        ///     <bullet_item>2（竞争对手）- 竞争对手的设施，可能会从您的设施中消除需求。竞争对手的设施特定于最大化市场份额和目标市场份额问题类型;在其他问题类型中会忽略它们。 </bullet_item><para/>
        ///   </bulletList>
        ///   </para>
        ///   <para>重量</para>
        ///   <para>设施的相对权重，用于评估一个设施与另一个设施相比的吸引力、可取性或偏差。</para>
        ///   <para>例如，值 2.0 可以捕获客户的偏好，这些客户更喜欢在一个设施中购物，比例为 2：1，而不是在另一个设施中购物。可能影响设施重量的因素包括建筑物的平方英尺、社区和年龄。权重值不是 1 仅受最大化市场份额和目标市场份额问题类型的尊重;在其他问题类型中会忽略它们。</para>
        ///   <para>近路</para>
        ///   <para>停止搜索给定设施点的请求点的阻抗值。不能将需求点分配给超出此处指示的值的设施点。</para>
        ///   <para>此属性允许您为每个请求点指定不同的截止值。例如，您可能会发现农村地区的人们愿意行驶 10 英里才能到达设施，而城市居民只愿意行驶 2 英里。您可以通过将农村地区所有需求点的截止值设置为 10，并将城市地区需求点的截止值设置为 2 来对此行为进行建模。</para>
        ///   <para>能力</para>
        ///   <para>“容量”字段特定于最大化容量覆盖率问题类型;其他问题类型将忽略此字段。</para>
        ///   <para>容量指定设施能够满足的加权需求量。即使超额需求在设施的默认测量截止时间内，也不会将超额需求分配给该设施。</para>
        ///   <para>分配给“容量”字段的任何值都会覆盖给定设施的“默认容量”参数（在 Python 中为 Default_Capacity）。</para>
        ///   <para>遏制方法</para>
        ///   <para>指定车辆到达或离开设施点的方向。字段值指定为以下整数之一（使用数字代码，而不是括号中的名称）：</para>
        ///   <para>
        ///     <bulletList>
        ///       <bullet_item></bullet_item><para/>
        ///       <bullet_item></bullet_item><para/>
        ///       <bullet_item></bullet_item><para/>
        ///     </bulletList>
        ///   </para>
        ///   <para>CurbApproach 属性旨在适用于两种类型的国家/地区驾驶标准：右侧交通（美国）和左侧交通（英国）。首先，考虑车辆左侧的设施。无论车辆是在道路的左半部分还是右半部分行驶，它始终在左侧。随着国家驾驶标准的变化，您决定从两个方向之一接近设施，也就是说，它最终位于车辆的右侧或左侧。例如，如果您要到达设施点，并且车辆和事件点之间没有车道，请选择 1（车辆右侧）在美国和 2（车辆左侧）。</para>
        ///   <para>轴承</para>
        ///   <para>点移动的方向。单位是度数，从正北顺时针测量。此字段与 BearingTol 字段结合使用。</para>
        ///   <para>轴承数据通常从配备 GPS 接收器的移动设备自动发送。如果要加载正在移动的输入位置（例如行人或车辆），请尝试包含方位角数据。</para>
        ///   <para>使用此字段可以防止将位置添加到错误的边缘，例如，当车辆靠近交叉路口或立交桥时，可能会发生这种情况。方位角还有助于工具确定点在街道的哪一侧。</para>
        ///   <para>轴承Tol</para>
        ///   <para>当使用“轴承”（Bearing） 场在边上定位移动点时，轴承公差值会创建可接受的轴承值范围。如果“方位角”（Bearing field） 值在边上的方位公差生成的可接受值范围内，则可以将该点添加为该点的网络位置;否则，将计算下一个最近边上的最近点。</para>
        ///   <para>单位以度为单位，默认值为 30。值必须大于 0 且小于 180。值为 30 表示当 Network Analyst 尝试在边上添加网络位置时，将在边的任一侧（左侧和右侧）以及边的两个数字化方向上生成一系列可接受的方位角值。</para>
        ///   <para>NavLatency（导航延迟）</para>
        ///   <para>仅当 Bearing 和 BearingTol 字段也具有值时，此字段才用于求解过程;但是，输入 NavLatency 字段值是可选的，即使值存在于 Bearing 和 BearingTol 中也是如此。NavLatency 表示从 GPS 信息从移动车辆发送到服务器的那一刻到车辆的导航设备接收到处理路线的那一刻，预计会花费多少成本。</para>
        ///   <para>NavLatency 的单位与阻抗属性的单位相同。</para>
        /// </xdoc></para>
        /// </param>
        /// <param name="_Demand_Points">
        /// <para>Demand Points</para>
        /// <para><xdoc>
        ///   <para>Specify one or more demand points. The solver identifies the best facilities based in large part on how they serve the demand points specified here.</para>
        ///   <para>A demand point is typically a location that represents the people or things requiring the goods and services your facilities provide. A demand point may be a ZIP Code centroid weighted by the number of people residing within it or by the expected consumption generated by those people. Demand points can also represent business customers. If you supply businesses with a high turnover of inventory, they will be weighted more heavily than those with a low turnover rate.</para>
        ///   <para>When specifying the demand points, you can set properties for each—such as its name or weight—using the following attributes:</para>
        ///   <para>Name</para>
        ///   <para>The name of the demand point. The name is included in the name of the output allocation line or lines if the demand point is part of the solution.</para>
        ///   <para>GroupName</para>
        ///   <para>The name of the group to which the demand point belongs. This field is ignored for the Maximize Capacitated Coverage, Target Market Share, and Maximize Market Share problem types.</para>
        ///   <para>If demand points share a group name, the solver allocates all members of the group to the same facility. (If constraints, such as a cutoff distance, prevent any of the demand points in the group from reaching the same facility, none of the demand points are allocated.)</para>
        ///   <para>Weight</para>
        ///   <para>The relative weighting of the demand point. A value of 2.0 means the demand point is twice as important as one with a weight of 1.0. If demand points represent households, for example, weight can indicate the number of people in each household.</para>
        ///   <para>Cutoff</para>
        ///   <para>The impedance value at which to stop searching for demand points from a given facility. The demand point can't be allocated to a facility that is beyond the value indicated here.</para>
        ///   <para>This attribute allows you to specify a cutoff value for each demand point. For example, you may find that people in rural areas are willing to travel up to 10 miles to reach a facility, while those in urban areas are only willing to travel up to 2 miles. You can model this behavior by setting the Cutoff value for all demand points that are in rural areas to 10 and setting the Cutoff value of the demand points in urban areas to 2.</para>
        ///   <para>The units for this attribute value are specified by the Measurement Units parameter.</para>
        ///   <para>A value for this attribute overrides the default set for the analysis using the Default Measurement Cutoff parameter. The default value is Null, which results in using the default value set by the Default Measurement Cutoff parameter for all the demand points.</para>
        ///   <para>ImpedanceTransformation</para>
        ///   <para>A value for this attribute overrides the default set for the analysis by the Measurement Transformation Model parameter.</para>
        ///   <para>ImpedanceParameter</para>
        ///   <para>A value for this attribute overrides the default set for the analysis by the Measurement Transformation Factor parameter.</para>
        ///   <para>CurbApproach</para>
        ///   <para>Specifies the direction a vehicle may arrive at or depart from the demand point. The field value is specified as one of the following integers (use the numeric code, not the name in parentheses):</para>
        ///   <para>
        ///     <bulletList>
        ///       <bullet_item>0 (Either side of vehicle)—The demand point can be visited from either the right or left side of the vehicle.</bullet_item><para/>
        ///       <bullet_item>1 (Right side of vehicle)—Arrive at or depart the demand point so it is on the right side of the vehicle. When the vehicle approaches and departs the demand point, the curb must be on the right side of the vehicle. This is typically used for vehicles such as buses that must arrive with the bus stop on the right-hand side so passengers can disembark at the curb.</bullet_item><para/>
        ///       <bullet_item>2 (Left side of vehicle)—Arrive at or depart the demand point so it is on the left side of the vehicle. When the vehicle approaches and departs the demand point, the curb must be on the left side of the vehicle. This is typically used for vehicles such as buses that must arrive with the bus stop on the left-hand side so passengers can disembark at the curb.</bullet_item><para/>
        ///     </bulletList>
        ///   </para>
        ///   <para>The CurbApproach attribute is designed to work with both types of national driving standards: right-hand traffic (United States) and left-hand traffic (United Kingdom). First, consider a demand point on the left side of a vehicle. It is always on the left side regardless of whether the vehicle travels on the left or right half of the road. What may change with national driving standards is your decision to approach a demand point from one of two directions, that is, so it ends up on the right or left side of the vehicle. For example, if you want to arrive at a demand point and not have a lane of traffic between the vehicle and the demand point, choose 1 (Right side of vehicle) in the United States and 2 (Left side of vehicle) in the United Kingdom.</para>
        ///   <para>Bearing</para>
        ///   <para>The direction in which a point is moving. The units are degrees and are measured clockwise from true north. This field is used in conjunction with the BearingTol field.</para>
        ///   <para>Bearing data is usually sent automatically from a mobile device equipped with a GPS receiver. Try to include bearing data if you are loading an input location that is moving, such as a pedestrian or a vehicle.</para>
        ///   <para>Using this field tends to prevent adding locations to the wrong edges, which can occur when a vehicle is near an intersection or an overpass, for example. Bearing also helps the tool determine on which side of the street the point is.</para>
        ///   <para>BearingTol</para>
        ///   <para>The bearing tolerance value creates a range of acceptable bearing values when locating moving points on an edge using the Bearing field. If the Bearing field value is within the range of acceptable values that are generated from the bearing tolerance on an edge, the point can be added as a network location there; otherwise, the closest point on the next-nearest edge is evaluated.</para>
        ///   <para>The units are in degrees, and the default value is 30. Values must be greater than 0 and less than 180. A value of 30 means that when Network Analyst attempts to add a network location on an edge, a range of acceptable bearing values is generated 15 degrees to either side of the edge (left and right) and in both digitized directions of the edge.</para>
        ///   <para>NavLatency</para>
        ///   <para>This field is only used in the solve process if the Bearing and BearingTol fields also have values; however, entering a NavLatency field value is optional, even when values are present in Bearing and BearingTol. NavLatency indicates how much cost is expected to elapse from the moment GPS information is sent from a moving vehicle to a server and the moment the processed route is received by the vehicle's navigation device.</para>
        ///   <para>The units of NavLatency are the same as the units of the impedance attribute.</para>
        /// </xdoc></para>
        /// <para><xdoc>
        ///   <para>指定一个或多个需求点。求解器在很大程度上根据它们如何为此处指定的需求点提供服务来识别最佳设施点。</para>
        ///   <para>需求点通常是表示需要设施提供的商品和服务的人员或事物的位置。需求点可以是一个邮政编码质心，根据居住在其中的人数或这些人产生的预期消费进行加权。需求点也可以代表业务客户。如果您为库存周转率高的企业供货，则它们的权重将高于周转率低的企业。</para>
        ///   <para>指定需求点时，可以使用以下属性为每个需求点设置属性，例如其名称或权重：</para>
        ///   <para>名字</para>
        ///   <para>请求点的名称。如果需求点是解决方案的一部分，则该名称将包含在输出分配行的名称中。</para>
        ///   <para>组名称</para>
        ///   <para>请求点所属的组的名称。对于“最大化电容覆盖范围”、“目标市场份额”和“最大化市场份额”问题类型，将忽略此字段。</para>
        ///   <para>如果请求点共享组名称，则求解器会将组的所有成员分配到同一设施点。（如果约束（如截止距离）阻止组中的任何请求点到达同一设施点，则不会分配任何请求点。</para>
        ///   <para>重量</para>
        ///   <para>需求点的相对权重。值为 2.0 表示需求点的重要性是权重为 1.0 的需求点的两倍。例如，如果需求点代表家庭，则权重可以指示每个家庭的人数。</para>
        ///   <para>近路</para>
        ///   <para>停止搜索给定设施点的请求点的阻抗值。不能将需求点分配给超出此处指示的值的设施点。</para>
        ///   <para>此属性允许您为每个请求点指定截止值。例如，您可能会发现农村地区的人们愿意行驶 10 英里才能到达设施，而城市地区的人们只愿意行驶 2 英里。您可以通过将农村地区所有需求点的截止值设置为 10，并将城市地区需求点的截止值设置为 2 来对此行为进行建模。</para>
        ///   <para>此属性值的单位由测量单位参数指定。</para>
        ///   <para>此属性的值将覆盖使用“默认测量截止值”参数的分析的默认设置。默认值为 Null，这将导致对所有需求点使用默认测量截止参数设置的默认值。</para>
        ///   <para>阻抗变换</para>
        ///   <para>此属性的值将覆盖测量变换模型参数为分析设置的默认值。</para>
        ///   <para>阻抗参数</para>
        ///   <para>此属性的值将覆盖测量变换因子参数为分析设置的默认值。</para>
        ///   <para>遏制方法</para>
        ///   <para>指定车辆可能到达或离开请求点的方向。字段值指定为以下整数之一（使用数字代码，而不是括号中的名称）：</para>
        ///   <para>
        ///     <bulletList>
        ///       <bullet_item></bullet_item><para/>
        ///       <bullet_item></bullet_item><para/>
        ///       <bullet_item></bullet_item><para/>
        ///     </bulletList>
        ///   </para>
        ///   <para>CurbApproach 属性旨在适用于两种类型的国家/地区驾驶标准：右侧交通（美国）和左侧交通（英国）。首先，考虑车辆左侧的需求点。无论车辆是在道路的左半部分还是右半部分行驶，它始终在左侧。随着国家驾驶标准的变化，您决定从两个方向之一接近需求点，也就是说，它最终位于车辆的右侧或左侧。例如，如果您要到达请求点，并且车辆和请求点之间没有车道，请选择 1（车辆右侧）在美国和 2（车辆左侧）在英国。</para>
        ///   <para>轴承</para>
        ///   <para>点移动的方向。单位是度数，从正北顺时针测量。此字段与 BearingTol 字段结合使用。</para>
        ///   <para>轴承数据通常从配备 GPS 接收器的移动设备自动发送。如果要加载正在移动的输入位置（例如行人或车辆），请尝试包含方位角数据。</para>
        ///   <para>使用此字段可以防止将位置添加到错误的边缘，例如，当车辆靠近交叉路口或立交桥时，可能会发生这种情况。方位角还有助于工具确定点在街道的哪一侧。</para>
        ///   <para>轴承Tol</para>
        ///   <para>当使用“轴承”（Bearing） 场在边上定位移动点时，轴承公差值会创建可接受的轴承值范围。如果“方位角”（Bearing field） 值在边上的方位公差生成的可接受值范围内，则可以将该点添加为该点的网络位置;否则，将计算下一个最近边上的最近点。</para>
        ///   <para>单位以度为单位，默认值为 30。值必须大于 0 且小于 180。值为 30 表示当 Network Analyst 尝试在边上添加网络位置时，将在边的任一侧（左侧和右侧）以及边的两个数字化方向上生成一系列可接受的方位角值。</para>
        ///   <para>NavLatency（导航延迟）</para>
        ///   <para>仅当 Bearing 和 BearingTol 字段也具有值时，此字段才用于求解过程;但是，输入 NavLatency 字段值是可选的，即使值存在于 Bearing 和 BearingTol 中也是如此。NavLatency 表示从 GPS 信息从移动车辆发送到服务器的那一刻到车辆的导航设备接收到处理路线的那一刻，预计会花费多少成本。</para>
        ///   <para>NavLatency 的单位与阻抗属性的单位相同。</para>
        /// </xdoc></para>
        /// </param>
        /// <param name="_Measurement_Units">
        /// <para>Measurement Units</para>
        /// <para><xdoc>
        ///   <para>Specify the units that will be used to measure the travel times or travel distances between demand points and facilities. The tool finds the best facilities based on those that can reach, or be reached by, the most amount of weighted demand with the least amount travel.</para>
        ///   <para>The output allocation lines report travel distance or travel time in different units, including the units you specify for this parameter.</para>
        ///   <bulletList>
        ///     <bullet_item>Meters—The linear unit is meters.</bullet_item><para/>
        ///     <bullet_item>Kilometers—The linear unit is kilometers.</bullet_item><para/>
        ///     <bullet_item>Feet—The linear unit is feet.</bullet_item><para/>
        ///     <bullet_item>Yards—The linear unit is yards.</bullet_item><para/>
        ///     <bullet_item>Miles—The linear unit is miles.</bullet_item><para/>
        ///     <bullet_item>Nautical Miles—The linear unit is nautical miles.</bullet_item><para/>
        ///     <bullet_item>Seconds—The time unit is seconds.</bullet_item><para/>
        ///     <bullet_item>Minutes—The time unit is minutes.</bullet_item><para/>
        ///     <bullet_item>Hours—The time unit is hours.</bullet_item><para/>
        ///     <bullet_item>Days—The time unit is days.</bullet_item><para/>
        ///   </bulletList>
        /// </xdoc></para>
        /// <para><xdoc>
        ///   <para>指定将用于测量需求点和设施点之间的行驶时间或行驶距离的单位。该工具根据那些能够以最少的旅行量达到或被最多加权需求到达的设施点来查找最佳设施点。</para>
        ///   <para>输出分配行以不同单位报告行驶距离或行驶时间，包括您为此参数指定的单位。</para>
        ///   <bulletList>
        ///     <bullet_item>米 - 线性单位为米。</bullet_item><para/>
        ///     <bullet_item>千米—线性单位为千米。</bullet_item><para/>
        ///     <bullet_item>英尺 - 线性单位为英尺。</bullet_item><para/>
        ///     <bullet_item>码 - 线性单位为码。</bullet_item><para/>
        ///     <bullet_item>英里—线性单位为英里。</bullet_item><para/>
        ///     <bullet_item>海里—线性单位为海里。</bullet_item><para/>
        ///     <bullet_item>秒 - 时间单位为秒。</bullet_item><para/>
        ///     <bullet_item>分钟 - 时间单位为分钟。</bullet_item><para/>
        ///     <bullet_item>小时 - 时间单位为小时。</bullet_item><para/>
        ///     <bullet_item>天 - 时间单位为天。</bullet_item><para/>
        ///   </bulletList>
        /// </xdoc></para>
        /// </param>
        public SolveLocationAllocation(object _Facilities, object _Demand_Points, _Measurement_Units_value _Measurement_Units)
        {
            this._Facilities = _Facilities;
            this._Demand_Points = _Demand_Points;
            this._Measurement_Units = _Measurement_Units;
        }
        public override string ToolboxName => "Ready To Use Tools";

        public override string ToolName => "Solve Location Allocation";

        public override string CallName => "agolservices.SolveLocationAllocation";

        public override List<string> AcceptEnvironments => [];

        public override object[] ParameterInfo => [_Facilities, _Demand_Points, _Measurement_Units.GetGPValue(), _Analysis_Region.GetGPValue(), _Problem_Type.GetGPValue(), _Number_of_Facilities_to_Find, _Default_Measurement_Cutoff, _Default_Capacity, _Target_Market_Share, _Measurement_Transformation_Model.GetGPValue(), _Measurement_Transformation_Factor, _Travel_Direction.GetGPValue(), _Time_of_Day, _Time_Zone_for_Time_of_Day.GetGPValue(), _UTurn_at_Junctions.GetGPValue(), _Point_Barriers, _Line_Barriers, _Polygon_Barriers, _Use_Hierarchy, _Restrictions, _Attribute_Parameter_Values, _Allocation_Line_Shape.GetGPValue(), _Travel_Mode, _Impedance.GetGPValue(), _Save_Output_Network_Analysis_Layer, _Overrides, _Time_Impedance.GetGPValue(), _Distance_Impedance.GetGPValue(), _Output_Format.GetGPValue(), _Ignore_Invalid_Locations, _Solve_Succeeded, _Output_Allocation_Lines, _Output_Facilities, _Output_Demand_Points, _Output_Network_Analysis_Layer, _Output_Result_File, _Output_Network_Analysis_Layer_Package];

        /// <summary>
        /// <para>Facilities</para>
        /// <para><xdoc>
        ///   <para>Specify one or more facilities that the solver will choose from during the analysis. The solver identifies the best facilities to allocate demand in the most efficient way according to the problem type and criteria you specify.</para>
        ///   <para>In a competitive analysis in which you try to find the best locations in the face of competition, the facilities of the competitors are specified here as well.</para>
        ///   <para>When defining the facilities, you can set properties for each—such as its name or type—using the following attributes:</para>
        ///   <para>Name</para>
        ///   <para>The name of the facility. The name is included in the name of output allocation lines if the facility is part of the solution.</para>
        ///   <para>FacilityType</para>
        ///   <para>Specifies whether the facility is a candidate, required, or a competitor facility. The field value is specified as one of the following integers (use the numeric code, not the name in parentheses):
        ///   <bulletList>
        ///     <bullet_item>0 (Candidate)—A facility that may be part of the solution.  </bullet_item><para/>
        ///     <bullet_item>1 (Required)—A facility that must be part of the solution.  </bullet_item><para/>
        ///     <bullet_item>2 (Competitor)—A rival facility that potentially removes demand from your facilities. Competitor facilities are specific to the maximize market share and target market share problem types; they are ignored in other problem types.  </bullet_item><para/>
        ///   </bulletList>
        ///   </para>
        ///   <para>Weight</para>
        ///   <para>The relative weighting of the facility, which is used to rate the attractiveness, desirability, or bias of one facility compared to another.</para>
        ///   <para>For example, a value of 2.0 may capture the preference of customers who prefer, at a ratio of 2 to 1, shopping in one facility over another facility. Factors that potentially affect facility weight include square footage, neighborhood, and age of the building. Weight values other than one are only honored by the maximize market share and target market share problem types; they are ignored in other problem types.</para>
        ///   <para>Cutoff</para>
        ///   <para>The impedance value at which to stop searching for demand points from a given facility. The demand point can't be allocated to a facility that is beyond the value indicated here.</para>
        ///   <para>This attribute allows you to specify a different cutoff value for each demand point. For example, you may find that people in rural areas are willing to travel up to 10 miles to reach a facility, while urbanites are only willing to travel up to 2 miles. You can model this behavior by setting the Cutoff value for all demand points that are in rural areas to 10 and setting the Cutoff value of the demand points in urban areas to 2.</para>
        ///   <para>Capacity</para>
        ///   <para>The Capacity field is specific to the maximize capacitated coverage problem type; the other problem types ignore this field.</para>
        ///   <para>Capacity specifies how much weighted demand the facility is capable of supplying. Excess demand won't be allocated to a facility even if that demand is within the facility's default measurement cutoff.</para>
        ///   <para>Any value assigned to the Capacity field overrides the Default Capacity parameter (Default_Capacity in Python) for the given facility.</para>
        ///   <para>CurbApproach</para>
        ///   <para>Specifies the direction a vehicle may arrive at or depart from the facility. The field value is specified as one of the following integers (use the numeric code, not the name in parentheses):</para>
        ///   <para>
        ///     <bulletList>
        ///       <bullet_item>0 (Either side of vehicle)—The facility can be visited from either the right or left side of the vehicle.</bullet_item><para/>
        ///       <bullet_item>1 (Right side of vehicle)—Arrive at or depart the facility so it is on the right side of the vehicle. This is typically used for vehicles such as buses that must arrive with the bus stop on the right-hand side so passengers can disembark at the curb.</bullet_item><para/>
        ///       <bullet_item>2 (Left side of vehicle)—Arrive at or depart the facility so it is on the left side of the vehicle. When the vehicle approaches and departs the facility, the curb must be on the left side of the vehicle. This is typically used for vehicles such as buses that must arrive with the bus stop on the left-hand side so passengers can disembark at the curb.</bullet_item><para/>
        ///     </bulletList>
        ///   </para>
        ///   <para>The CurbApproach attribute is designed to work with both types of national driving standards: right-hand traffic (United States) and left-hand traffic (United Kingdom). First, consider a facility on the left side of a vehicle. It is always on the left side regardless of whether the vehicle travels on the left or right half of the road. What may change with national driving standards is your decision to approach a facility from one of two directions, that is, so it ends up on the right or left side of the vehicle. For example, if you want to arrive at a facility and not have a lane of traffic between the vehicle and the incident, choose 1 (Right side of vehicle) in the United States and 2 (Left side of vehicle) in the United Kingdom.</para>
        ///   <para>Bearing</para>
        ///   <para>The direction in which a point is moving. The units are degrees and are measured clockwise from true north. This field is used in conjunction with the BearingTol field.</para>
        ///   <para>Bearing data is usually sent automatically from a mobile device equipped with a GPS receiver. Try to include bearing data if you are loading an input location that is moving, such as a pedestrian or a vehicle.</para>
        ///   <para>Using this field tends to prevent adding locations to the wrong edges, which can occur when a vehicle is near an intersection or an overpass, for example. Bearing also helps the tool determine on which side of the street the point is.</para>
        ///   <para>BearingTol</para>
        ///   <para>The bearing tolerance value creates a range of acceptable bearing values when locating moving points on an edge using the Bearing field. If the Bearing field value is within the range of acceptable values that are generated from the bearing tolerance on an edge, the point can be added as a network location there; otherwise, the closest point on the next-nearest edge is evaluated.</para>
        ///   <para>The units are in degrees, and the default value is 30. Values must be greater than 0 and less than 180. A value of 30 means that when Network Analyst attempts to add a network location on an edge, a range of acceptable bearing values is generated 15 degrees to either side of the edge (left and right) and in both digitized directions of the edge.</para>
        ///   <para>NavLatency</para>
        ///   <para>This field is only used in the solve process if the Bearing and BearingTol fields also have values; however, entering a NavLatency field value is optional, even when values are present in Bearing and BearingTol. NavLatency indicates how much cost is expected to elapse from the moment GPS information is sent from a moving vehicle to a server and the moment the processed route is received by the vehicle's navigation device.</para>
        ///   <para>The units of NavLatency are the same as the units of the impedance attribute.</para>
        /// </xdoc></para>
        /// <para><xdoc>
        ///   <para>指定求解器在分析期间将从中选择的一个或多个设施点。求解程序根据您指定的问题类型和条件，确定以最有效的方式分配需求的最佳设施点。</para>
        ///   <para>在竞争分析中，您试图在竞争中找到最佳位置，此处还指定了竞争对手的设施。</para>
        ///   <para>定义设施点时，可以使用以下属性设置每个设施点的属性，例如其名称或类型：</para>
        ///   <para>名字</para>
        ///   <para>设施的名称。如果设施是解决方案的一部分，则该名称将包含在输出分配行的名称中。</para>
        ///   <para>设施类型</para>
        /// <para>指定设施是候选设施、必需设施还是竞争对手设施。字段值指定为以下整数之一（使用数字代码，而不是括号中的名称）：
        ///   <bulletList>
        ///     <bullet_item>0（候选）- 可能作为解决方案一部分的设施。</bullet_item><para/>
        ///     <bullet_item>1（必需）- 必须是解决方案一部分的设施。</bullet_item><para/>
        ///     <bullet_item>2（竞争对手）- 竞争对手的设施，可能会从您的设施中消除需求。竞争对手的设施特定于最大化市场份额和目标市场份额问题类型;在其他问题类型中会忽略它们。 </bullet_item><para/>
        ///   </bulletList>
        ///   </para>
        ///   <para>重量</para>
        ///   <para>设施的相对权重，用于评估一个设施与另一个设施相比的吸引力、可取性或偏差。</para>
        ///   <para>例如，值 2.0 可以捕获客户的偏好，这些客户更喜欢在一个设施中购物，比例为 2：1，而不是在另一个设施中购物。可能影响设施重量的因素包括建筑物的平方英尺、社区和年龄。权重值不是 1 仅受最大化市场份额和目标市场份额问题类型的尊重;在其他问题类型中会忽略它们。</para>
        ///   <para>近路</para>
        ///   <para>停止搜索给定设施点的请求点的阻抗值。不能将需求点分配给超出此处指示的值的设施点。</para>
        ///   <para>此属性允许您为每个请求点指定不同的截止值。例如，您可能会发现农村地区的人们愿意行驶 10 英里才能到达设施，而城市居民只愿意行驶 2 英里。您可以通过将农村地区所有需求点的截止值设置为 10，并将城市地区需求点的截止值设置为 2 来对此行为进行建模。</para>
        ///   <para>能力</para>
        ///   <para>“容量”字段特定于最大化容量覆盖率问题类型;其他问题类型将忽略此字段。</para>
        ///   <para>容量指定设施能够满足的加权需求量。即使超额需求在设施的默认测量截止时间内，也不会将超额需求分配给该设施。</para>
        ///   <para>分配给“容量”字段的任何值都会覆盖给定设施的“默认容量”参数（在 Python 中为 Default_Capacity）。</para>
        ///   <para>遏制方法</para>
        ///   <para>指定车辆到达或离开设施点的方向。字段值指定为以下整数之一（使用数字代码，而不是括号中的名称）：</para>
        ///   <para>
        ///     <bulletList>
        ///       <bullet_item></bullet_item><para/>
        ///       <bullet_item></bullet_item><para/>
        ///       <bullet_item></bullet_item><para/>
        ///     </bulletList>
        ///   </para>
        ///   <para>CurbApproach 属性旨在适用于两种类型的国家/地区驾驶标准：右侧交通（美国）和左侧交通（英国）。首先，考虑车辆左侧的设施。无论车辆是在道路的左半部分还是右半部分行驶，它始终在左侧。随着国家驾驶标准的变化，您决定从两个方向之一接近设施，也就是说，它最终位于车辆的右侧或左侧。例如，如果您要到达设施点，并且车辆和事件点之间没有车道，请选择 1（车辆右侧）在美国和 2（车辆左侧）。</para>
        ///   <para>轴承</para>
        ///   <para>点移动的方向。单位是度数，从正北顺时针测量。此字段与 BearingTol 字段结合使用。</para>
        ///   <para>轴承数据通常从配备 GPS 接收器的移动设备自动发送。如果要加载正在移动的输入位置（例如行人或车辆），请尝试包含方位角数据。</para>
        ///   <para>使用此字段可以防止将位置添加到错误的边缘，例如，当车辆靠近交叉路口或立交桥时，可能会发生这种情况。方位角还有助于工具确定点在街道的哪一侧。</para>
        ///   <para>轴承Tol</para>
        ///   <para>当使用“轴承”（Bearing） 场在边上定位移动点时，轴承公差值会创建可接受的轴承值范围。如果“方位角”（Bearing field） 值在边上的方位公差生成的可接受值范围内，则可以将该点添加为该点的网络位置;否则，将计算下一个最近边上的最近点。</para>
        ///   <para>单位以度为单位，默认值为 30。值必须大于 0 且小于 180。值为 30 表示当 Network Analyst 尝试在边上添加网络位置时，将在边的任一侧（左侧和右侧）以及边的两个数字化方向上生成一系列可接受的方位角值。</para>
        ///   <para>NavLatency（导航延迟）</para>
        ///   <para>仅当 Bearing 和 BearingTol 字段也具有值时，此字段才用于求解过程;但是，输入 NavLatency 字段值是可选的，即使值存在于 Bearing 和 BearingTol 中也是如此。NavLatency 表示从 GPS 信息从移动车辆发送到服务器的那一刻到车辆的导航设备接收到处理路线的那一刻，预计会花费多少成本。</para>
        ///   <para>NavLatency 的单位与阻抗属性的单位相同。</para>
        /// </xdoc></para>
        /// <para></para>
        /// </summary>
        [DisplayName("Facilities")]
        [Description("")]
        [Option(OptionTypeEnum.Must)]
        public object _Facilities { get; set; }


        /// <summary>
        /// <para>Demand Points</para>
        /// <para><xdoc>
        ///   <para>Specify one or more demand points. The solver identifies the best facilities based in large part on how they serve the demand points specified here.</para>
        ///   <para>A demand point is typically a location that represents the people or things requiring the goods and services your facilities provide. A demand point may be a ZIP Code centroid weighted by the number of people residing within it or by the expected consumption generated by those people. Demand points can also represent business customers. If you supply businesses with a high turnover of inventory, they will be weighted more heavily than those with a low turnover rate.</para>
        ///   <para>When specifying the demand points, you can set properties for each—such as its name or weight—using the following attributes:</para>
        ///   <para>Name</para>
        ///   <para>The name of the demand point. The name is included in the name of the output allocation line or lines if the demand point is part of the solution.</para>
        ///   <para>GroupName</para>
        ///   <para>The name of the group to which the demand point belongs. This field is ignored for the Maximize Capacitated Coverage, Target Market Share, and Maximize Market Share problem types.</para>
        ///   <para>If demand points share a group name, the solver allocates all members of the group to the same facility. (If constraints, such as a cutoff distance, prevent any of the demand points in the group from reaching the same facility, none of the demand points are allocated.)</para>
        ///   <para>Weight</para>
        ///   <para>The relative weighting of the demand point. A value of 2.0 means the demand point is twice as important as one with a weight of 1.0. If demand points represent households, for example, weight can indicate the number of people in each household.</para>
        ///   <para>Cutoff</para>
        ///   <para>The impedance value at which to stop searching for demand points from a given facility. The demand point can't be allocated to a facility that is beyond the value indicated here.</para>
        ///   <para>This attribute allows you to specify a cutoff value for each demand point. For example, you may find that people in rural areas are willing to travel up to 10 miles to reach a facility, while those in urban areas are only willing to travel up to 2 miles. You can model this behavior by setting the Cutoff value for all demand points that are in rural areas to 10 and setting the Cutoff value of the demand points in urban areas to 2.</para>
        ///   <para>The units for this attribute value are specified by the Measurement Units parameter.</para>
        ///   <para>A value for this attribute overrides the default set for the analysis using the Default Measurement Cutoff parameter. The default value is Null, which results in using the default value set by the Default Measurement Cutoff parameter for all the demand points.</para>
        ///   <para>ImpedanceTransformation</para>
        ///   <para>A value for this attribute overrides the default set for the analysis by the Measurement Transformation Model parameter.</para>
        ///   <para>ImpedanceParameter</para>
        ///   <para>A value for this attribute overrides the default set for the analysis by the Measurement Transformation Factor parameter.</para>
        ///   <para>CurbApproach</para>
        ///   <para>Specifies the direction a vehicle may arrive at or depart from the demand point. The field value is specified as one of the following integers (use the numeric code, not the name in parentheses):</para>
        ///   <para>
        ///     <bulletList>
        ///       <bullet_item>0 (Either side of vehicle)—The demand point can be visited from either the right or left side of the vehicle.</bullet_item><para/>
        ///       <bullet_item>1 (Right side of vehicle)—Arrive at or depart the demand point so it is on the right side of the vehicle. When the vehicle approaches and departs the demand point, the curb must be on the right side of the vehicle. This is typically used for vehicles such as buses that must arrive with the bus stop on the right-hand side so passengers can disembark at the curb.</bullet_item><para/>
        ///       <bullet_item>2 (Left side of vehicle)—Arrive at or depart the demand point so it is on the left side of the vehicle. When the vehicle approaches and departs the demand point, the curb must be on the left side of the vehicle. This is typically used for vehicles such as buses that must arrive with the bus stop on the left-hand side so passengers can disembark at the curb.</bullet_item><para/>
        ///     </bulletList>
        ///   </para>
        ///   <para>The CurbApproach attribute is designed to work with both types of national driving standards: right-hand traffic (United States) and left-hand traffic (United Kingdom). First, consider a demand point on the left side of a vehicle. It is always on the left side regardless of whether the vehicle travels on the left or right half of the road. What may change with national driving standards is your decision to approach a demand point from one of two directions, that is, so it ends up on the right or left side of the vehicle. For example, if you want to arrive at a demand point and not have a lane of traffic between the vehicle and the demand point, choose 1 (Right side of vehicle) in the United States and 2 (Left side of vehicle) in the United Kingdom.</para>
        ///   <para>Bearing</para>
        ///   <para>The direction in which a point is moving. The units are degrees and are measured clockwise from true north. This field is used in conjunction with the BearingTol field.</para>
        ///   <para>Bearing data is usually sent automatically from a mobile device equipped with a GPS receiver. Try to include bearing data if you are loading an input location that is moving, such as a pedestrian or a vehicle.</para>
        ///   <para>Using this field tends to prevent adding locations to the wrong edges, which can occur when a vehicle is near an intersection or an overpass, for example. Bearing also helps the tool determine on which side of the street the point is.</para>
        ///   <para>BearingTol</para>
        ///   <para>The bearing tolerance value creates a range of acceptable bearing values when locating moving points on an edge using the Bearing field. If the Bearing field value is within the range of acceptable values that are generated from the bearing tolerance on an edge, the point can be added as a network location there; otherwise, the closest point on the next-nearest edge is evaluated.</para>
        ///   <para>The units are in degrees, and the default value is 30. Values must be greater than 0 and less than 180. A value of 30 means that when Network Analyst attempts to add a network location on an edge, a range of acceptable bearing values is generated 15 degrees to either side of the edge (left and right) and in both digitized directions of the edge.</para>
        ///   <para>NavLatency</para>
        ///   <para>This field is only used in the solve process if the Bearing and BearingTol fields also have values; however, entering a NavLatency field value is optional, even when values are present in Bearing and BearingTol. NavLatency indicates how much cost is expected to elapse from the moment GPS information is sent from a moving vehicle to a server and the moment the processed route is received by the vehicle's navigation device.</para>
        ///   <para>The units of NavLatency are the same as the units of the impedance attribute.</para>
        /// </xdoc></para>
        /// <para><xdoc>
        ///   <para>指定一个或多个需求点。求解器在很大程度上根据它们如何为此处指定的需求点提供服务来识别最佳设施点。</para>
        ///   <para>需求点通常是表示需要设施提供的商品和服务的人员或事物的位置。需求点可以是一个邮政编码质心，根据居住在其中的人数或这些人产生的预期消费进行加权。需求点也可以代表业务客户。如果您为库存周转率高的企业供货，则它们的权重将高于周转率低的企业。</para>
        ///   <para>指定需求点时，可以使用以下属性为每个需求点设置属性，例如其名称或权重：</para>
        ///   <para>名字</para>
        ///   <para>请求点的名称。如果需求点是解决方案的一部分，则该名称将包含在输出分配行的名称中。</para>
        ///   <para>组名称</para>
        ///   <para>请求点所属的组的名称。对于“最大化电容覆盖范围”、“目标市场份额”和“最大化市场份额”问题类型，将忽略此字段。</para>
        ///   <para>如果请求点共享组名称，则求解器会将组的所有成员分配到同一设施点。（如果约束（如截止距离）阻止组中的任何请求点到达同一设施点，则不会分配任何请求点。</para>
        ///   <para>重量</para>
        ///   <para>需求点的相对权重。值为 2.0 表示需求点的重要性是权重为 1.0 的需求点的两倍。例如，如果需求点代表家庭，则权重可以指示每个家庭的人数。</para>
        ///   <para>近路</para>
        ///   <para>停止搜索给定设施点的请求点的阻抗值。不能将需求点分配给超出此处指示的值的设施点。</para>
        ///   <para>此属性允许您为每个请求点指定截止值。例如，您可能会发现农村地区的人们愿意行驶 10 英里才能到达设施，而城市地区的人们只愿意行驶 2 英里。您可以通过将农村地区所有需求点的截止值设置为 10，并将城市地区需求点的截止值设置为 2 来对此行为进行建模。</para>
        ///   <para>此属性值的单位由测量单位参数指定。</para>
        ///   <para>此属性的值将覆盖使用“默认测量截止值”参数的分析的默认设置。默认值为 Null，这将导致对所有需求点使用默认测量截止参数设置的默认值。</para>
        ///   <para>阻抗变换</para>
        ///   <para>此属性的值将覆盖测量变换模型参数为分析设置的默认值。</para>
        ///   <para>阻抗参数</para>
        ///   <para>此属性的值将覆盖测量变换因子参数为分析设置的默认值。</para>
        ///   <para>遏制方法</para>
        ///   <para>指定车辆可能到达或离开请求点的方向。字段值指定为以下整数之一（使用数字代码，而不是括号中的名称）：</para>
        ///   <para>
        ///     <bulletList>
        ///       <bullet_item></bullet_item><para/>
        ///       <bullet_item></bullet_item><para/>
        ///       <bullet_item></bullet_item><para/>
        ///     </bulletList>
        ///   </para>
        ///   <para>CurbApproach 属性旨在适用于两种类型的国家/地区驾驶标准：右侧交通（美国）和左侧交通（英国）。首先，考虑车辆左侧的需求点。无论车辆是在道路的左半部分还是右半部分行驶，它始终在左侧。随着国家驾驶标准的变化，您决定从两个方向之一接近需求点，也就是说，它最终位于车辆的右侧或左侧。例如，如果您要到达请求点，并且车辆和请求点之间没有车道，请选择 1（车辆右侧）在美国和 2（车辆左侧）在英国。</para>
        ///   <para>轴承</para>
        ///   <para>点移动的方向。单位是度数，从正北顺时针测量。此字段与 BearingTol 字段结合使用。</para>
        ///   <para>轴承数据通常从配备 GPS 接收器的移动设备自动发送。如果要加载正在移动的输入位置（例如行人或车辆），请尝试包含方位角数据。</para>
        ///   <para>使用此字段可以防止将位置添加到错误的边缘，例如，当车辆靠近交叉路口或立交桥时，可能会发生这种情况。方位角还有助于工具确定点在街道的哪一侧。</para>
        ///   <para>轴承Tol</para>
        ///   <para>当使用“轴承”（Bearing） 场在边上定位移动点时，轴承公差值会创建可接受的轴承值范围。如果“方位角”（Bearing field） 值在边上的方位公差生成的可接受值范围内，则可以将该点添加为该点的网络位置;否则，将计算下一个最近边上的最近点。</para>
        ///   <para>单位以度为单位，默认值为 30。值必须大于 0 且小于 180。值为 30 表示当 Network Analyst 尝试在边上添加网络位置时，将在边的任一侧（左侧和右侧）以及边的两个数字化方向上生成一系列可接受的方位角值。</para>
        ///   <para>NavLatency（导航延迟）</para>
        ///   <para>仅当 Bearing 和 BearingTol 字段也具有值时，此字段才用于求解过程;但是，输入 NavLatency 字段值是可选的，即使值存在于 Bearing 和 BearingTol 中也是如此。NavLatency 表示从 GPS 信息从移动车辆发送到服务器的那一刻到车辆的导航设备接收到处理路线的那一刻，预计会花费多少成本。</para>
        ///   <para>NavLatency 的单位与阻抗属性的单位相同。</para>
        /// </xdoc></para>
        /// <para></para>
        /// </summary>
        [DisplayName("Demand Points")]
        [Description("")]
        [Option(OptionTypeEnum.Must)]
        public object _Demand_Points { get; set; }


        /// <summary>
        /// <para>Measurement Units</para>
        /// <para><xdoc>
        ///   <para>Specify the units that will be used to measure the travel times or travel distances between demand points and facilities. The tool finds the best facilities based on those that can reach, or be reached by, the most amount of weighted demand with the least amount travel.</para>
        ///   <para>The output allocation lines report travel distance or travel time in different units, including the units you specify for this parameter.</para>
        ///   <bulletList>
        ///     <bullet_item>Meters—The linear unit is meters.</bullet_item><para/>
        ///     <bullet_item>Kilometers—The linear unit is kilometers.</bullet_item><para/>
        ///     <bullet_item>Feet—The linear unit is feet.</bullet_item><para/>
        ///     <bullet_item>Yards—The linear unit is yards.</bullet_item><para/>
        ///     <bullet_item>Miles—The linear unit is miles.</bullet_item><para/>
        ///     <bullet_item>Nautical Miles—The linear unit is nautical miles.</bullet_item><para/>
        ///     <bullet_item>Seconds—The time unit is seconds.</bullet_item><para/>
        ///     <bullet_item>Minutes—The time unit is minutes.</bullet_item><para/>
        ///     <bullet_item>Hours—The time unit is hours.</bullet_item><para/>
        ///     <bullet_item>Days—The time unit is days.</bullet_item><para/>
        ///   </bulletList>
        /// </xdoc></para>
        /// <para><xdoc>
        ///   <para>指定将用于测量需求点和设施点之间的行驶时间或行驶距离的单位。该工具根据那些能够以最少的旅行量达到或被最多加权需求到达的设施点来查找最佳设施点。</para>
        ///   <para>输出分配行以不同单位报告行驶距离或行驶时间，包括您为此参数指定的单位。</para>
        ///   <bulletList>
        ///     <bullet_item>米 - 线性单位为米。</bullet_item><para/>
        ///     <bullet_item>千米—线性单位为千米。</bullet_item><para/>
        ///     <bullet_item>英尺 - 线性单位为英尺。</bullet_item><para/>
        ///     <bullet_item>码 - 线性单位为码。</bullet_item><para/>
        ///     <bullet_item>英里—线性单位为英里。</bullet_item><para/>
        ///     <bullet_item>海里—线性单位为海里。</bullet_item><para/>
        ///     <bullet_item>秒 - 时间单位为秒。</bullet_item><para/>
        ///     <bullet_item>分钟 - 时间单位为分钟。</bullet_item><para/>
        ///     <bullet_item>小时 - 时间单位为小时。</bullet_item><para/>
        ///     <bullet_item>天 - 时间单位为天。</bullet_item><para/>
        ///   </bulletList>
        /// </xdoc></para>
        /// <para></para>
        /// </summary>
        [DisplayName("Measurement Units")]
        [Description("")]
        [Option(OptionTypeEnum.Must)]
        public _Measurement_Units_value _Measurement_Units { get; set; }

        public enum _Measurement_Units_value
        {
            /// <summary>
            /// <para>Meters</para>
            /// <para>Meters—The linear unit is meters.</para>
            /// <para>米 - 线性单位为米。</para>
            /// </summary>
            [Description("Meters")]
            [GPEnumValue("Meters")]
            _Meters,

            /// <summary>
            /// <para>Kilometers</para>
            /// <para>Kilometers—The linear unit is kilometers.</para>
            /// <para>千米—线性单位为千米。</para>
            /// </summary>
            [Description("Kilometers")]
            [GPEnumValue("Kilometers")]
            _Kilometers,

            /// <summary>
            /// <para>Feet</para>
            /// <para>Feet—The linear unit is feet.</para>
            /// <para>英尺 - 线性单位为英尺。</para>
            /// </summary>
            [Description("Feet")]
            [GPEnumValue("Feet")]
            _Feet,

            /// <summary>
            /// <para>Yards</para>
            /// <para>Yards—The linear unit is yards.</para>
            /// <para>码 - 线性单位为码。</para>
            /// </summary>
            [Description("Yards")]
            [GPEnumValue("Yards")]
            _Yards,

            /// <summary>
            /// <para>Miles</para>
            /// <para>Miles—The linear unit is miles.</para>
            /// <para>英里—线性单位为英里。</para>
            /// </summary>
            [Description("Miles")]
            [GPEnumValue("Miles")]
            _Miles,

            /// <summary>
            /// <para>Nautical Miles</para>
            /// <para>Nautical Miles—The linear unit is nautical miles.</para>
            /// <para>海里—线性单位为海里。</para>
            /// </summary>
            [Description("Nautical Miles")]
            [GPEnumValue("NauticalMiles")]
            _NauticalMiles,

            /// <summary>
            /// <para>Seconds</para>
            /// <para>Seconds—The time unit is seconds.</para>
            /// <para>秒 - 时间单位为秒。</para>
            /// </summary>
            [Description("Seconds")]
            [GPEnumValue("Seconds")]
            _Seconds,

            /// <summary>
            /// <para>Minutes</para>
            /// <para>Minutes—The time unit is minutes.</para>
            /// <para>分钟 - 时间单位为分钟。</para>
            /// </summary>
            [Description("Minutes")]
            [GPEnumValue("Minutes")]
            _Minutes,

            /// <summary>
            /// <para>Hours</para>
            /// <para>Hours—The time unit is hours.</para>
            /// <para>小时 - 时间单位为小时。</para>
            /// </summary>
            [Description("Hours")]
            [GPEnumValue("Hours")]
            _Hours,

            /// <summary>
            /// <para>Days</para>
            /// <para>Days—The time unit is days.</para>
            /// <para>天 - 时间单位为天。</para>
            /// </summary>
            [Description("Days")]
            [GPEnumValue("Days")]
            _Days,

        }

        /// <summary>
        /// <para>Analysis Region</para>
        /// <para><xdoc>
        ///   <para>The region in which the analysis will be performed. If a value is not specified for this parameter, the tool will automatically calculate the region name based on the location of the input points. Setting the name of the region is required only if the automatic detection of the region name is not accurate for your inputs.</para>
        ///   <para>To specify a region, use one of the following values:</para>
        ///   <bulletList>
        ///     <bullet_item>Europe—The analysis region is Europe.</bullet_item><para/>
        ///     <bullet_item>Japan—The analysis region is Japan.</bullet_item><para/>
        ///     <bullet_item>Korea—The analysis region is Korea.</bullet_item><para/>
        ///     <bullet_item>Middle East And Africa—The analysis region is Middle East and Africa.</bullet_item><para/>
        ///     <bullet_item>North America—The analysis region is North America.</bullet_item><para/>
        ///     <bullet_item>South America—The analysis region is South America.</bullet_item><para/>
        ///     <bullet_item>South Asia—The analysis region is South Asia.</bullet_item><para/>
        ///     <bullet_item>Thailand—The analysis region is Thailand.</bullet_item><para/>
        ///   </bulletList>
        ///   <para>The following region names are no longer supported and will be removed in future releases. If you specify one of the deprecated region names, the tool automatically assigns a supported region name for your region.
        ///   <bulletList>
        ///     <bullet_item>Greece redirects to Europe  </bullet_item><para/>
        ///     <bullet_item>India redirects to SouthAsia  </bullet_item><para/>
        ///     <bullet_item>Oceania redirects to SouthAsia  </bullet_item><para/>
        ///     <bullet_item>SouthEastAsia redirects to SouthAsia  </bullet_item><para/>
        ///     <bullet_item>Taiwan redirects to SouthAsia  </bullet_item><para/>
        ///   </bulletList>
        ///   </para>
        /// </xdoc></para>
        /// <para><xdoc>
        ///   <para>将在其中执行分析的区域。如果未为此参数指定值，则该工具将根据输入点的位置自动计算区域名称。仅当输入的区域名称的自动检测不准确时，才需要设置区域名称。</para>
        ///   <para>若要指定区域，请使用下列值之一：</para>
        ///   <bulletList>
        ///     <bullet_item>欧洲 - 分析区域为欧洲。</bullet_item><para/>
        ///     <bullet_item>日本 - 分析区域为日本。</bullet_item><para/>
        ///     <bullet_item>韩国—分析区域为韩国。</bullet_item><para/>
        ///     <bullet_item>中东和非洲 - 分析区域为中东和非洲。</bullet_item><para/>
        ///     <bullet_item>北美 - 分析区域为北美。</bullet_item><para/>
        ///     <bullet_item>南美洲 - 分析区域为南美洲。</bullet_item><para/>
        ///     <bullet_item>南亚—分析区域为南亚。</bullet_item><para/>
        ///     <bullet_item>泰国 - 分析区域为泰国。</bullet_item><para/>
        ///   </bulletList>
        /// <para>以下区域名称不再受支持，并将在将来的版本中删除。如果您指定其中一个已弃用的区域名称，则该工具会自动为您的区域分配支持的区域名称。
        ///   <bulletList>
        ///     <bullet_item>希腊重定向到欧洲</bullet_item><para/>
        ///     <bullet_item>印度重定向到南亚</bullet_item><para/>
        ///     <bullet_item>大洋洲重定向到南亚</bullet_item><para/>
        ///     <bullet_item>东南亚重定向到南亚</bullet_item><para/>
        ///     <bullet_item>台湾重定向到南亚</bullet_item><para/>
        ///   </bulletList>
        ///   </para>
        /// </xdoc></para>
        /// <para></para>
        /// </summary>
        [DisplayName("Analysis Region")]
        [Description("")]
        [Option(OptionTypeEnum.optional)]
        public _Analysis_Region_value? _Analysis_Region { get; set; } = null;

        public enum _Analysis_Region_value
        {
            /// <summary>
            /// <para>Europe</para>
            /// <para>Europe—The analysis region is Europe.</para>
            /// <para>欧洲 - 分析区域为欧洲。</para>
            /// </summary>
            [Description("Europe")]
            [GPEnumValue("Europe")]
            _Europe,

            /// <summary>
            /// <para>Japan</para>
            /// <para>Japan—The analysis region is Japan.</para>
            /// <para>日本 - 分析区域为日本。</para>
            /// </summary>
            [Description("Japan")]
            [GPEnumValue("Japan")]
            _Japan,

            /// <summary>
            /// <para>Korea</para>
            /// <para>Korea—The analysis region is Korea.</para>
            /// <para>韩国—分析区域为韩国。</para>
            /// </summary>
            [Description("Korea")]
            [GPEnumValue("Korea")]
            _Korea,

            /// <summary>
            /// <para>Middle East And Africa</para>
            /// <para>Middle East And Africa—The analysis region is Middle East and Africa.</para>
            /// <para>中东和非洲 - 分析区域为中东和非洲。</para>
            /// </summary>
            [Description("Middle East And Africa")]
            [GPEnumValue("MiddleEastAndAfrica")]
            _MiddleEastAndAfrica,

            /// <summary>
            /// <para>North America</para>
            /// <para>North America—The analysis region is North America.</para>
            /// <para>北美 - 分析区域为北美。</para>
            /// </summary>
            [Description("North America")]
            [GPEnumValue("NorthAmerica")]
            _NorthAmerica,

            /// <summary>
            /// <para>South America</para>
            /// <para>South America—The analysis region is South America.</para>
            /// <para>南美洲 - 分析区域为南美洲。</para>
            /// </summary>
            [Description("South America")]
            [GPEnumValue("SouthAmerica")]
            _SouthAmerica,

            /// <summary>
            /// <para>South Asia</para>
            /// <para>South Asia—The analysis region is South Asia.</para>
            /// <para>南亚—分析区域为南亚。</para>
            /// </summary>
            [Description("South Asia")]
            [GPEnumValue("SouthAsia")]
            _SouthAsia,

            /// <summary>
            /// <para>Thailand</para>
            /// <para>Thailand—The analysis region is Thailand.</para>
            /// <para>泰国 - 分析区域为泰国。</para>
            /// </summary>
            [Description("Thailand")]
            [GPEnumValue("Thailand")]
            _Thailand,

        }

        /// <summary>
        /// <para>Problem Type</para>
        /// <para><xdoc>
        ///   <para>Specifies the objective of the location-allocation analysis. The default objective is to minimize impedance.</para>
        ///   <bulletList>
        ///     <bullet_item>Minimize Impedance—This is also known as the P-Median problem type. Facilities are located such that the sum of all weighted travel time or distance between demand points and solution facilities is minimized. (Weighted travel is the amount of demand allocated to a facility multiplied by the travel distance or time to the facility.)This problem type is traditionally used to locate warehouses, because it can reduce the overall transportation costs of delivering goods to outlets. Since minimize impedance reduces the overall distance the public needs to travel to reach the chosen facilities, the minimize impedance problem without an impedance cutoff is typically regarded as more equitable than other problem types for locating some public sector facilities such as libraries, regional airports, museums, department of motor vehicles offices, and health clinics.The following list describes how the minimize impedance problem type handles demand:
        ///     <bulletList>
        ///       <bullet_item>A demand point that cannot reach any facilities due to setting a cutoff distance or time is not allocated.  </bullet_item><para/>
        ///       <bullet_item>A demand point that can only reach one facility has all its demand weight allocated to that facility.  </bullet_item><para/>
        ///       <bullet_item>A demand point that can reach two or more facilities has all its demand weight allocated to the nearest facility only.  </bullet_item><para/>
        ///     </bulletList>
        ///     </bullet_item><para/>
        ///     <bullet_item>Maximize Coverage—Facilities are located such that as much demand as possible is allocated to solution facilities within the impedance cutoff.Maximize coverage is frequently used to locate fire stations, police stations, and ERS centers, because emergency services are often required to arrive at all demand points within a specified response time. Note that it is important for all organizations, and critical for emergency services, to have accurate and precise data so analysis results correctly model real-world results.Pizza delivery businesses, as opposed to eat-in pizzerias, try to locate stores where they can cover the most people within a certain drive time. People who order pizzas for delivery don't typically worry about how far away the pizzeria is; they are mainly concerned with the pizza arriving within an advertised time window. Therefore, a pizza-delivery business would subtract pizza-preparation time from their advertised delivery time and solve a maximize coverage problem to choose the candidate facility that will capture the most potential customers in the coverage area. (Potential customers of eat-in pizzerias are more affected by distance, since they need to travel to the restaurant; thus, the attendance maximizing and market share problem types are better suited to eat-in restaurants.)The following list describes how the maximize coverage problem type handles demand:
        ///     <bulletList>
        ///       <bullet_item>A demand point that cannot reach any facilities due to cutoff distance or time is not allocated.  </bullet_item><para/>
        ///       <bullet_item>A demand point that can only reach one facility has all its demand weight allocated to that facility.  </bullet_item><para/>
        ///       <bullet_item>A demand point that can reach two or more facilities has all its demand weight allocated to the nearest facility only.  </bullet_item><para/>
        ///     </bulletList>
        ///     </bullet_item><para/>
        ///     <bullet_item>Maximize Capacitated Coverage—Facilities are located such that all or the greatest amount of demand can be served without exceeding the capacity of any facility.Maximize capacitated coverage behaves similarly to the minimize impedance and maximize coverage problem types but with the added constraint of capacity. You can specify a capacity for an individual facility by assigning a numeric value to its corresponding Capacity field on the input facilities. If the Capacity field value is null, the facility is assigned a capacity from the Default Capacity property.Use cases for the maximize capacitated coverage problem type include creating territories that encompass a given number of people or businesses, locating hospitals or other medical facilities with a limited number of beds or patients who can be treated, and locating warehouses whose inventory isn't assumed to be unlimited. The following list describes how the maximize capacitated coverage problem type handles demand:
        ///     <bulletList>
        ///       <bullet_item>Unlike maximize coverage, maximize capacitated coverage doesn't require a value for the Default Measurement Cutoff parameter; however, when a cutoff is specified, any demand point outside the cutoff time or distance of all facilities is not allocated.  </bullet_item><para/>
        ///       <bullet_item>An allocated demand point has all or none of its demand weight assigned to a facility; that is, demand isn't apportioned with this problem type.  </bullet_item><para/>
        ///       <bullet_item>If the total demand that can reach a facility is greater than the capacity of the facility, only the demand points that maximize total captured demand and minimize total weighted travel are allocated.
        ///         <para>You may notice an apparent inefficiency when a demand point is allocated to a facility that isn't the nearest solution facility. This may occur when demand points have varying weights and when the demand point in question can reach more than one facility. This kind of result indicates the nearest solution facility didn't have adequate capacity for the weighted demand, or the most efficient solution for the entire problem required one or more local inefficiencies. In either case, the solution is correct.    </para>
        ///       </bullet_item><para/>
        ///     </bulletList>
        ///     </bullet_item><para/>
        ///     <bullet_item>Minimize Facilities—Facilities are chosen such that as much weighted demand as possible is allocated to solution facilities within the travel time or distance cutoff; additionally, the number of facilities required to cover demand is minimized.Minimize facilities is the same as maximize coverage but with the exception of the number of facilities to locate, which in this case is determined by the solver. When the cost of building facilities is not a limiting factor, the same types of organizations that use maximize coverage (emergency response, for instance) use minimize facilities so all possible demand points will be covered. The following list describes how the minimize facilities problem type handles demand:
        ///     <bulletList>
        ///       <bullet_item>A demand point that cannot reach any facilities due to a cutoff distance or time is not allocated.  </bullet_item><para/>
        ///       <bullet_item>A demand point that can only reach one facility has all its demand weight allocated to that facility.  </bullet_item><para/>
        ///       <bullet_item>A demand point that can reach two or more facilities has all its demand weight allocated to the nearest facility only.  </bullet_item><para/>
        ///     </bulletList>
        ///     </bullet_item><para/>
        ///     <bullet_item>Maximize Attendance—Facilities are chosen such that as much demand weight as possible is allocated to facilities while assuming the demand weight decreases in relation to the distance between the facility and the demand point.Specialty stores that have little or no competition benefit from this problem type, but it may also be beneficial to general retailers and restaurants that don't have the data on competitors necessary to perform market share problem types. Some businesses that may benefit from this problem type include coffee shops, fitness centers, dental and medical offices, and electronics stores. Public transit bus stops are often chosen with the help of maximize attendance. Maximize attendance assumes that the farther people must travel to reach your facility, the less likely they are to use it. This is reflected in how the amount of demand allocated to facilities diminishes with distance.The following list describes how the maximize attendance problem type handles demand:
        ///     <bulletList>
        ///       <bullet_item>A demand point that cannot reach any facilities due to a cutoff distance or time is not allocated.  </bullet_item><para/>
        ///       <bullet_item>When a demand point can reach a facility, its demand weight is only partially allocated to the facility. The amount allocated decreases as a function of the maximum cutoff distance (or time) and the travel distance (or time) between the facility and the demand point.  </bullet_item><para/>
        ///       <bullet_item>The weight of a demand point that can reach more than one facility is proportionately allocated to the nearest facility only.  </bullet_item><para/>
        ///     </bulletList>
        ///     </bullet_item><para/>
        ///     <bullet_item>Maximize Market Share—A specific number of facilities are chosen such that the allocated demand is maximized in the presence of competitors. The goal is to capture as much of the total market share as possible with a given number of facilities, which you specify. The total market share is the sum of all demand weight for valid demand points.The market share problem types require the most data because, along with knowing your own facilities' weight, you also need to know that of your competitors' facilities. The same types of facilities that use the maximize attendance problem type can also use market share problem types given that they have comprehensive information that includes competitor data. Large discount stores typically use maximize market share to locate a finite set of new stores. The market share problem types use a Huff model, which is also known as a gravity model or spatial interaction.The following list describes how the maximize market share problem type handles demand:
        ///     <bulletList>
        ///       <bullet_item>A demand point that cannot reach any facilities due to a cutoff distance or time is not allocated.  </bullet_item><para/>
        ///       <bullet_item>A demand point that can only reach one facility has all its demand weight allocated to that facility.  </bullet_item><para/>
        ///       <bullet_item>
        ///         <para>A demand point that can reach two or more facilities has all its demand weight allocated to them; furthermore, the weight is split among the facilities proportionally to the facilities' attractiveness (facility weight) and inversely proportionally to the distance between the facility and demand point. Given equal facility weights, this means more demand weight is assigned to near facilities than far facilities.    </para>  </bullet_item><para/>
        ///       <bullet_item>
        ///         <para>The total market share, which can be used to calculate the captured market share, is the sum of the weight of all valid demand points.    </para>  </bullet_item><para/>
        ///     </bulletList>
        ///     </bullet_item><para/>
        ///     <bullet_item>Target Market Share—The minimum number of facilities necessary to capture a specific percentage of the total market share in the presence of competitors is chosen. The total market share is the sum of all demand weight for valid demand points. You set the percent of the market share you want to reach and the solver identifies the fewest number of facilities necessary to meet that threshold.The market share problem types require the most data because, along with knowing your own facilities' weight, you also need to know that of your competitors' facilities. The same types of facilities that use the maximize attendance problem type can also use market share problem types given that they have comprehensive information that includes competitor data.Large discount stores typically use the target market share problem type when they want to know how much expansion would be required to reach a certain level of the market share or see what strategy would be needed just to maintain their current market share given the introduction of new competing facilities. The results often represent what stores would do if budgets weren't a concern. In other cases where budget is a concern, stores revert to the maximize market share problem type and capture as much of the market share as possible with a limited number of facilities.The following list describes how the target market share problem type handles demand:
        ///     <bulletList>
        ///       <bullet_item>The total market share, which is used in calculating the captured market share, is the sum of the weight of all valid demand points.  </bullet_item><para/>
        ///       <bullet_item>A demand point that cannot reach any facilities due to a cutoff distance or time is not allocated.  </bullet_item><para/>
        ///       <bullet_item>A demand point that can only reach one facility has all its demand weight allocated to that facility.  </bullet_item><para/>
        ///       <bullet_item>A demand point that can reach two or more facilities has all its demand weight allocated to them; furthermore, the weight is split among the facilities proportionally to the facilities' attractiveness (facility weight) and inversely proportionally to the distance between the facility and demand point. Given equal facility weights, this means more demand weight is assigned to near facilities than far facilities.  </bullet_item><para/>
        ///     </bulletList>
        ///     </bullet_item><para/>
        ///   </bulletList>
        /// </xdoc></para>
        /// <para><xdoc>
        ///   <para>指定位置分配分析的目标。默认目标是最小化阻抗。</para>
        ///   <bulletList>
        /// <bullet_item>最小化阻抗 - 也称为 P-中值问题类型。设施点的位置使得需求点和解决方案设施之间的所有加权行程时间或距离的总和最小化。（加权行程是分配给设施点的需求量乘以到设施点的行程距离或时间。传统上，此问题类型用于定位仓库，因为它可以降低将货物运送到网点的总体运输成本。由于最小阻抗减少了公众到达所选设施所需的总距离，因此对于定位某些公共部门设施（如图书馆、地区机场、博物馆、机动车辆部办公室和健康诊所），没有阻抗截止的最小阻抗问题通常被认为比其他问题类型更公平。以下列表描述了最小化阻抗问题类型如何处理需求：
        ///     <bulletList>
        ///       <bullet_item>由于设置截止距离或时间而无法到达任何设施点的请求点将不被分配。</bullet_item><para/>
        ///       <bullet_item>一个只能到达一个设施点的需求点会将其所有需求权重分配给该设施点。</bullet_item><para/>
        ///       <bullet_item>可以到达两个或多个设施点的请求点仅将其所有需求权重分配给最近的设施点。</bullet_item><para/>
        ///     </bulletList>
        ///     </bullet_item><para/>
        /// <bullet_item>最大化覆盖范围 - 设施点的位置使得在阻抗截止范围内将尽可能多的需求分配给解决方案设施点。最大覆盖范围经常用于定位消防站、警察局和 ERS 中心，因为通常需要紧急服务在指定的响应时间内到达所有需求点。请注意，对于所有组织来说，拥有准确和精确的数据对于紧急服务来说都很重要，这样分析结果才能正确地模拟真实世界的结果。与堂食比萨店相反，披萨外卖企业试图找到可以在一定车程内覆盖最多人的商店。订购披萨外卖的人通常不担心披萨店有多远;他们主要关心的是披萨在广告规定的时间窗口内到达。因此，披萨外卖企业将从其宣传的交付时间中减去披萨准备时间，并解决最大覆盖率问题，以选择能够吸引覆盖区域内最潜在客户的候选设施。（堂食披萨店的潜在客户受距离的影响更大，因为他们需要前往餐厅;因此，出勤率最大化和市场份额问题类型更适合堂食餐厅。以下列表描述了最大化覆盖率问题类型如何处理需求：
        ///     <bulletList>
        ///       <bullet_item>由于截止距离或时间原因无法到达任何设施点的请求点不会被分配。</bullet_item><para/>
        ///       <bullet_item>一个只能到达一个设施点的需求点会将其所有需求权重分配给该设施点。</bullet_item><para/>
        ///       <bullet_item>可以到达两个或多个设施点的请求点仅将其所有需求权重分配给最近的设施点。</bullet_item><para/>
        ///     </bulletList>
        ///     </bullet_item><para/>
        ///     <bullet_item>最大化容量覆盖范围 - 设施的位置可以在不超过任何设施容量的情况下满足所有或最大需求。“最大化电容覆盖率”的行为类似于“最小阻抗”和“最大化覆盖率”问题类型，但增加了容量限制。您可以通过将数值分配给输入设施点上相应的容量字段来指定单个设施点的容量。如果容量字段值为 null，则从默认容量属性中为设施点分配容量。最大化容量覆盖问题类型的用例包括创建包含给定数量人员或企业的区域，定位可治疗床位或患者数量有限的医院或其他医疗设施，以及定位库存不假定无限的仓库。以下列表描述了最大化电容覆盖率问题类型如何处理需求：
        ///     <bulletList>
        ///       <bullet_item>与最大化覆盖率不同，最大化电容覆盖率不需要默认测量截止参数的值;但是，如果指定了截止时间，则不会分配所有设施的截止时间或距离之外的任何需求点。 </bullet_item><para/>
        ///       <bullet_item>分配的需求点将其全部需求权重分配给设施点，或者没有分配给设施点;也就是说，需求不会按此问题类型进行分配。 </bullet_item><para/>
        /// <bullet_item>如果可到达设施点的总需求大于设施点的容量，则仅分配最大化捕获的总需求和最小化总加权行程的需求点。
        ///         <para>您可能会注意到，当需求点分配给不是最近的解决方案设施的设施时，效率明显低下。当需求点具有不同的权重，并且相关需求点可以到达多个设施点时，可能会发生这种情况。这种结果表明最近的解决方案设施没有足够的能力来满足加权需求，或者整个问题的最有效解决方案需要一个或多个局部低效率。无论哪种情况，解决方案都是正确的。   </para>
        ///       </bullet_item><para/>
        ///     </bulletList>
        ///     </bullet_item><para/>
        /// <bullet_item>最小化设施点 - 选择设施点时，应在行驶时间或距离截止时间内将尽可能多的加权需求分配给解决方案设施点;此外，满足需求所需的设施点数量将最小化。最小化设施点与最大化覆盖范围相同，但要定位的设施点数除外，在这种情况下，该设施点数由求解器确定。当建筑设施的成本不是限制因素时，使用最大覆盖范围（例如应急响应）的相同类型的组织使用最小化设施，以便覆盖所有可能的需求点。以下列表描述了最小化设施点问题类型如何处理需求：
        ///     <bulletList>
        ///       <bullet_item>由于截止距离或时间而无法到达任何设施点的请求点将不被分配。</bullet_item><para/>
        ///       <bullet_item>一个只能到达一个设施点的需求点会将其所有需求权重分配给该设施点。</bullet_item><para/>
        ///       <bullet_item>可以到达两个或多个设施点的请求点仅将其所有需求权重分配给最近的设施点。</bullet_item><para/>
        ///     </bulletList>
        ///     </bullet_item><para/>
        ///     <bullet_item>最大化考勤 - 选择设施点时，应将尽可能多的需求权重分配给设施点，同时假设需求权重相对于设施点与需求点之间的距离减小。竞争很少或没有竞争的专卖店从这个问题类型中受益，但对于没有执行市场份额问题类型所需的竞争对手数据的一般零售商和餐馆来说，它也可能有益。一些可能从此问题类型中受益的企业包括咖啡店、健身中心、牙科和医疗办公室以及电子产品商店。公共交通巴士站的选择通常是为了最大限度地提高出勤率。最大化出勤率的前提是，人们必须走得越远才能到达您的设施，他们使用它的可能性就越小。这反映在分配给设施的需求量如何随着距离的增加而减少。以下列表描述了最大出勤问题类型如何处理需求：
        ///     <bulletList>
        ///       <bullet_item>由于截止距离或时间而无法到达任何设施点的请求点将不被分配。</bullet_item><para/>
        ///       <bullet_item>当需求点可以到达设施点时，其需求权重仅部分分配给设施点。分配的量会随着最大截止距离（或时间）和设施点与需求点之间的行驶距离（或时间）而减少。 </bullet_item><para/>
        ///       <bullet_item>可到达多个设施点的请求点的权重仅按比例分配给最近的设施点。</bullet_item><para/>
        ///     </bulletList>
        ///     </bullet_item><para/>
        ///     <bullet_item>最大化市场份额 - 选择特定数量的设施，以便在存在竞争对手的情况下最大限度地分配需求。目标是通过您指定的给定数量的设施尽可能多地占领总市场份额。总市场份额是有效需求点的所有需求权重的总和。市场份额问题类型需要最多的数据，因为除了了解自己设施的权重外，您还需要了解竞争对手设施的权重。使用最大出勤问题类型的相同类型的设施也可以使用市场份额问题类型，因为它们具有包含竞争对手数据的综合信息。大型折扣店通常使用最大化市场份额来定位一组有限的新店。市场份额问题类型使用 Huff 模型，也称为重力模型或空间交互。以下列表描述了最大化市场份额问题类型如何处理需求：
        ///     <bulletList>
        ///       <bullet_item>由于截止距离或时间而无法到达任何设施点的请求点将不被分配。</bullet_item><para/>
        ///       <bullet_item>一个只能到达一个设施点的需求点会将其所有需求权重分配给该设施点。</bullet_item><para/>
        ///       <bullet_item>
        /// <para>一个可以到达两个或两个以上设施点的需求点的所有需求权重都分配给了它们;此外，权重在设施之间按比例分配，与设施点和需求点之间的距离成反比。在设施权重相等的情况下，这意味着分配给近设施点的需求权重比远距离设施点更多。   </para>  </bullet_item><para/>
        ///       <bullet_item>
        /// <para>总市场份额（可用于计算捕获的市场份额）是所有有效需求点的权重之和。   </para>  </bullet_item><para/>
        ///     </bulletList>
        ///     </bullet_item><para/>
        /// <bullet_item>目标市场份额 - 选择在存在竞争对手的情况下获得总市场份额的特定百分比所需的最小设施数量。总市场份额是有效需求点的所有需求权重的总和。设置要达到的市场份额百分比，求解器将确定满足该阈值所需的最少设施数。市场份额问题类型需要最多的数据，因为除了了解自己设施的权重外，您还需要了解竞争对手设施的权重。使用最大出勤率问题类型的相同类型的设施也可以使用市场份额问题类型，因为它们具有包含竞争对手数据的全面信息。大型折扣店通常使用目标市场份额问题类型，因为他们想知道需要多少扩张才能达到一定的市场份额水平，或者看看需要什么策略才能在引入新的竞争设施的情况下保持其当前的市场份额。结果通常代表了如果预算不是问题，商店会做什么。在预算问题的其他情况下，商店会恢复到最大化市场份额问题类型，并在有限数量的设施中尽可能多地占领市场份额。以下列表描述了目标市场份额问题类型如何处理需求：
        ///     <bulletList>
        ///       <bullet_item>用于计算捕获的市场份额的总市场份额是所有有效需求点的权重之和。</bullet_item><para/>
        ///       <bullet_item>由于截止距离或时间而无法到达任何设施点的请求点将不被分配。</bullet_item><para/>
        ///       <bullet_item>一个只能到达一个设施点的需求点会将其所有需求权重分配给该设施点。</bullet_item><para/>
        ///       <bullet_item>可以到达两个或多个设施点的需求点已将其所有需求权重分配给它们;此外，权重在设施之间按比例分配，与设施的吸引力（设施重量）成反比，与设施与需求点之间的距离成反比。在设施权重相等的情况下，这意味着分配给近设施点的需求权重比远距离设施点更多。 </bullet_item><para/>
        ///     </bulletList>
        ///     </bullet_item><para/>
        ///   </bulletList>
        /// </xdoc></para>
        /// <para></para>
        /// </summary>
        [DisplayName("Problem Type")]
        [Description("")]
        [Option(OptionTypeEnum.optional)]
        public _Problem_Type_value _Problem_Type { get; set; } = _Problem_Type_value._Minimize_Impedance;

        public enum _Problem_Type_value
        {
            /// <summary>
            /// <para>Maximize Attendance</para>
            /// <para>Maximize Attendance—Facilities are chosen such that as much demand weight as possible is allocated to facilities while assuming the demand weight decreases in relation to the distance between the facility and the demand point.Specialty stores that have little or no competition benefit from this problem type, but it may also be beneficial to general retailers and restaurants that don't have the data on competitors necessary to perform market share problem types. Some businesses that may benefit from this problem type include coffee shops, fitness centers, dental and medical offices, and electronics stores. Public transit bus stops are often chosen with the help of maximize attendance. Maximize attendance assumes that the farther people must travel to reach your facility, the less likely they are to use it. This is reflected in how the amount of demand allocated to facilities diminishes with distance.The following list describes how the maximize attendance problem type handles demand:</para>
            /// <para>最大化考勤 - 选择设施点时，应将尽可能多的需求权重分配给设施点，同时假设需求权重相对于设施点与需求点之间的距离减小。竞争很少或没有竞争的专卖店从这个问题类型中受益，但对于没有执行市场份额问题类型所需的竞争对手数据的一般零售商和餐馆来说，它也可能有益。一些可能从此问题类型中受益的企业包括咖啡店、健身中心、牙科和医疗办公室以及电子产品商店。公共交通巴士站的选择通常是为了最大限度地提高出勤率。最大化出勤率的前提是，人们必须走得越远才能到达您的设施，他们使用它的可能性就越小。这反映在分配给设施的需求量如何随着距离的增加而减少。以下列表描述了最大出勤问题类型如何处理需求：</para>
            /// </summary>
            [Description("Maximize Attendance")]
            [GPEnumValue("Maximize Attendance")]
            _Maximize_Attendance,

            /// <summary>
            /// <para>Maximize Capacitated Coverage</para>
            /// <para>Maximize Capacitated Coverage—Facilities are located such that all or the greatest amount of demand can be served without exceeding the capacity of any facility.Maximize capacitated coverage behaves similarly to the minimize impedance and maximize coverage problem types but with the added constraint of capacity. You can specify a capacity for an individual facility by assigning a numeric value to its corresponding Capacity field on the input facilities. If the Capacity field value is null, the facility is assigned a capacity from the Default Capacity property.Use cases for the maximize capacitated coverage problem type include creating territories that encompass a given number of people or businesses, locating hospitals or other medical facilities with a limited number of beds or patients who can be treated, and locating warehouses whose inventory isn't assumed to be unlimited. The following list describes how the maximize capacitated coverage problem type handles demand:</para>
            /// <para>最大化容量覆盖范围 - 设施的位置可以在不超过任何设施容量的情况下满足所有或最大需求。“最大化电容覆盖率”的行为类似于“最小阻抗”和“最大化覆盖率”问题类型，但增加了容量限制。您可以通过将数值分配给输入设施点上相应的容量字段来指定单个设施点的容量。如果容量字段值为 null，则从默认容量属性中为设施点分配容量。最大化容量覆盖问题类型的用例包括创建包含给定数量人员或企业的区域，定位可治疗床位或患者数量有限的医院或其他医疗设施，以及定位库存不假定无限的仓库。以下列表描述了最大化电容覆盖率问题类型如何处理需求：</para>
            /// </summary>
            [Description("Maximize Capacitated Coverage")]
            [GPEnumValue("Maximize Capacitated Coverage")]
            _Maximize_Capacitated_Coverage,

            /// <summary>
            /// <para>Maximize Coverage</para>
            /// <para>Maximize Coverage—Facilities are located such that as much demand as possible is allocated to solution facilities within the impedance cutoff.Maximize coverage is frequently used to locate fire stations, police stations, and ERS centers, because emergency services are often required to arrive at all demand points within a specified response time. Note that it is important for all organizations, and critical for emergency services, to have accurate and precise data so analysis results correctly model real-world results.Pizza delivery businesses, as opposed to eat-in pizzerias, try to locate stores where they can cover the most people within a certain drive time. People who order pizzas for delivery don't typically worry about how far away the pizzeria is; they are mainly concerned with the pizza arriving within an advertised time window. Therefore, a pizza-delivery business would subtract pizza-preparation time from their advertised delivery time and solve a maximize coverage problem to choose the candidate facility that will capture the most potential customers in the coverage area. (Potential customers of eat-in pizzerias are more affected by distance, since they need to travel to the restaurant; thus, the attendance maximizing and market share problem types are better suited to eat-in restaurants.)The following list describes how the maximize coverage problem type handles demand:</para>
            /// <para>最大化覆盖范围 - 设施点的位置使得在阻抗截止范围内将尽可能多的需求分配给解决方案设施点。最大覆盖范围经常用于定位消防站、警察局和 ERS 中心，因为通常需要紧急服务在指定的响应时间内到达所有需求点。请注意，对于所有组织来说，拥有准确和精确的数据对于紧急服务来说都很重要，这样分析结果才能正确地模拟真实世界的结果。与堂食比萨店相反，披萨外卖企业试图找到可以在一定车程内覆盖最多人的商店。订购披萨外卖的人通常不担心披萨店有多远;他们主要关心的是披萨在广告规定的时间窗口内到达。因此，披萨外卖企业将从其宣传的交付时间中减去披萨准备时间，并解决最大覆盖率问题，以选择能够吸引覆盖区域内最潜在客户的候选设施。（堂食披萨店的潜在客户受距离的影响更大，因为他们需要前往餐厅;因此，出勤率最大化和市场份额问题类型更适合堂食餐厅。以下列表描述了最大化覆盖率问题类型如何处理需求：</para>
            /// </summary>
            [Description("Maximize Coverage")]
            [GPEnumValue("Maximize Coverage")]
            _Maximize_Coverage,

            /// <summary>
            /// <para>Maximize Market Share</para>
            /// <para>Maximize Market Share—A specific number of facilities are chosen such that the allocated demand is maximized in the presence of competitors. The goal is to capture as much of the total market share as possible with a given number of facilities, which you specify. The total market share is the sum of all demand weight for valid demand points.The market share problem types require the most data because, along with knowing your own facilities' weight, you also need to know that of your competitors' facilities. The same types of facilities that use the maximize attendance problem type can also use market share problem types given that they have comprehensive information that includes competitor data. Large discount stores typically use maximize market share to locate a finite set of new stores. The market share problem types use a Huff model, which is also known as a gravity model or spatial interaction.The following list describes how the maximize market share problem type handles demand:</para>
            /// <para>最大化市场份额 - 选择特定数量的设施，以便在存在竞争对手的情况下最大限度地分配需求。目标是通过您指定的给定数量的设施尽可能多地占领总市场份额。总市场份额是有效需求点的所有需求权重的总和。市场份额问题类型需要最多的数据，因为除了了解自己设施的权重外，您还需要了解竞争对手设施的权重。使用最大出勤问题类型的相同类型的设施也可以使用市场份额问题类型，因为它们具有包含竞争对手数据的综合信息。大型折扣店通常使用最大化市场份额来定位一组有限的新店。市场份额问题类型使用 Huff 模型，也称为重力模型或空间交互。以下列表描述了最大化市场份额问题类型如何处理需求：</para>
            /// </summary>
            [Description("Maximize Market Share")]
            [GPEnumValue("Maximize Market Share")]
            _Maximize_Market_Share,

            /// <summary>
            /// <para>Minimize Facilities</para>
            /// <para>Minimize Facilities—Facilities are chosen such that as much weighted demand as possible is allocated to solution facilities within the travel time or distance cutoff; additionally, the number of facilities required to cover demand is minimized.Minimize facilities is the same as maximize coverage but with the exception of the number of facilities to locate, which in this case is determined by the solver. When the cost of building facilities is not a limiting factor, the same types of organizations that use maximize coverage (emergency response, for instance) use minimize facilities so all possible demand points will be covered. The following list describes how the minimize facilities problem type handles demand:</para>
            /// <para>最小化设施点 - 选择设施点时，应在行驶时间或距离截止时间内将尽可能多的加权需求分配给解决方案设施点;此外，满足需求所需的设施点数量将最小化。最小化设施点与最大化覆盖范围相同，但要定位的设施点数除外，在这种情况下，该设施点数由求解器确定。当建筑设施的成本不是限制因素时，使用最大覆盖范围（例如应急响应）的相同类型的组织使用最小化设施，以便覆盖所有可能的需求点。以下列表描述了最小化设施点问题类型如何处理需求：</para>
            /// </summary>
            [Description("Minimize Facilities")]
            [GPEnumValue("Minimize Facilities")]
            _Minimize_Facilities,

            /// <summary>
            /// <para>Minimize Impedance</para>
            /// <para>Minimize Impedance—This is also known as the P-Median problem type. Facilities are located such that the sum of all weighted travel time or distance between demand points and solution facilities is minimized. (Weighted travel is the amount of demand allocated to a facility multiplied by the travel distance or time to the facility.)This problem type is traditionally used to locate warehouses, because it can reduce the overall transportation costs of delivering goods to outlets. Since minimize impedance reduces the overall distance the public needs to travel to reach the chosen facilities, the minimize impedance problem without an impedance cutoff is typically regarded as more equitable than other problem types for locating some public sector facilities such as libraries, regional airports, museums, department of motor vehicles offices, and health clinics.The following list describes how the minimize impedance problem type handles demand:</para>
            /// <para>最小化阻抗 - 也称为 P-中值问题类型。设施点的位置使得需求点和解决方案设施之间的所有加权行程时间或距离的总和最小化。（加权行程是分配给设施点的需求量乘以到设施点的行程距离或时间。传统上，此问题类型用于定位仓库，因为它可以降低将货物运送到网点的总体运输成本。由于最小阻抗减少了公众到达所选设施所需的总距离，因此对于定位某些公共部门设施（如图书馆、地区机场、博物馆、机动车辆部办公室和健康诊所），没有阻抗截止的最小阻抗问题通常被认为比其他问题类型更公平。以下列表描述了最小化阻抗问题类型如何处理需求：</para>
            /// </summary>
            [Description("Minimize Impedance")]
            [GPEnumValue("Minimize Impedance")]
            _Minimize_Impedance,

            /// <summary>
            /// <para>Target Market Share</para>
            /// <para>Target Market Share—The minimum number of facilities necessary to capture a specific percentage of the total market share in the presence of competitors is chosen. The total market share is the sum of all demand weight for valid demand points. You set the percent of the market share you want to reach and the solver identifies the fewest number of facilities necessary to meet that threshold.The market share problem types require the most data because, along with knowing your own facilities' weight, you also need to know that of your competitors' facilities. The same types of facilities that use the maximize attendance problem type can also use market share problem types given that they have comprehensive information that includes competitor data.Large discount stores typically use the target market share problem type when they want to know how much expansion would be required to reach a certain level of the market share or see what strategy would be needed just to maintain their current market share given the introduction of new competing facilities. The results often represent what stores would do if budgets weren't a concern. In other cases where budget is a concern, stores revert to the maximize market share problem type and capture as much of the market share as possible with a limited number of facilities.The following list describes how the target market share problem type handles demand:</para>
            /// <para>目标市场份额 - 选择在存在竞争对手的情况下获得总市场份额的特定百分比所需的最小设施数量。总市场份额是有效需求点的所有需求权重的总和。设置要达到的市场份额百分比，求解器将确定满足该阈值所需的最少设施数。市场份额问题类型需要最多的数据，因为除了了解自己设施的权重外，您还需要了解竞争对手设施的权重。使用最大出勤率问题类型的相同类型的设施也可以使用市场份额问题类型，因为它们具有包含竞争对手数据的全面信息。大型折扣店通常使用目标市场份额问题类型，因为他们想知道需要多少扩张才能达到一定的市场份额水平，或者看看需要什么策略才能在引入新的竞争设施的情况下保持其当前的市场份额。结果通常代表了如果预算不是问题，商店会做什么。在预算问题的其他情况下，商店会恢复到最大化市场份额问题类型，并在有限数量的设施中尽可能多地占领市场份额。以下列表描述了目标市场份额问题类型如何处理需求：</para>
            /// </summary>
            [Description("Target Market Share")]
            [GPEnumValue("Target Market Share")]
            _Target_Market_Share,

        }

        /// <summary>
        /// <para>Number of Facilities to Find</para>
        /// <para><xdoc>
        ///   <para>The number of facilities to find. The default value is 1.</para>
        ///   <para>The facilities with a FacilityType field value of 1 (Required) are always chosen first. Any excess facilities are chosen from candidate facilities with a FacilityType field value of 2.</para>
        ///   <para>Any facilities that have a FacilityType value of 3 (Chosen) before solving are treated as candidate facilities at solve time.</para>
        ///   <para>If the number of facilities to find is less than the number of required facilities, an error occurs.</para>
        ///   <para>Number of Facilities to Find is disabled for the minimize facilities and target market share problem types since the solver determines the minimum number of facilities needed to meet the objectives.</para>
        /// </xdoc></para>
        /// <para><xdoc>
        ///   <para>要查找的设施点数量。默认值为 1。</para>
        ///   <para>始终首先选择 FacilityType 字段值为 1（必需）的设施点。从 FacilityType 字段值为 2 的候选设施中选择任何多余的设施点。</para>
        ///   <para>在求解前 FacilityType 值为 3（已选）的任何设施点在求解时都被视为候选设施点。</para>
        ///   <para>如果要查找的设施点数小于所需设施点数，则会发生错误。</para>
        ///   <para>对于最小化设施点和目标市场份额问题类型，要查找的设施点数被禁用，因为求解器会确定满足目标所需的最小设施点数。</para>
        /// </xdoc></para>
        /// <para></para>
        /// </summary>
        [DisplayName("Number of Facilities to Find")]
        [Description("")]
        [Option(OptionTypeEnum.optional)]
        public long _Number_of_Facilities_to_Find { get; set; } = 1;


        /// <summary>
        /// <para>Default Measurement Cutoff</para>
        /// <para><xdoc>
        ///   <para>The maximum travel time or distance allowed between a demand point and the facility it is allocated to. If a demand point is outside the cutoff of a facility, it cannot be allocated to that facility.</para>
        ///   <para>The default value is none, which means the cutoff limit doesn't apply.</para>
        ///   <para>The units for this parameter are the same as those specified by the Measurement Units parameter.</para>
        ///   <para>The travel time or distance cutoff is measured by the shortest path along roads.</para>
        ///   <para>This parameter can be used to model the maximum distance that people are willing to travel to visit stores or the maximum time permitted for a fire department to reach anyone in the community.</para>
        ///   <para>Note that Demand Points includes the Cutoff field, which, if set accordingly, overrides the Default Measurement Cutoff parameter. You may find that people in rural areas are willing to travel up to 10 miles to reach a facility while urbanites are only willing to travel up to two miles. Assuming Measurement Units is set to Miles, you can model this behavior by setting the default measurement cutoff to 10 and the Cutoff field value of the demand points in urban areas to 2.</para>
        /// </xdoc></para>
        /// <para><xdoc>
        ///   <para>请求点与其分配到的设施点之间允许的最大行驶时间或距离。如果需求点位于设施点的截止点之外，则无法将其分配给该设施点。</para>
        ///   <para>默认值为 none，这意味着截止限制不适用。</para>
        ///   <para>此参数的单位与测量单位参数指定的单位相同。</para>
        ///   <para>行驶时间或距离截止值由沿道路的最短路径来衡量。</para>
        ///   <para>此参数可用于模拟人们愿意前往商店的最大距离或消防部门允许到达社区中任何人的最长时间。</para>
        ///   <para>请注意，“请求点”（Demand Points） 包括“截止”（Cutoff） 字段，如果相应地设置该字段，则会覆盖“默认测量截止”（Default Measurement Cutoff） 参数。您可能会发现，农村地区的人们愿意走 10 英里才能到达一个设施，而城市人只愿意走 2 英里。假设“测量单位”设置为“英里”，则可以通过将默认测量截止值设置为 10 并将城市区域需求点的截止字段值设置为 2 来对此行为进行建模。</para>
        /// </xdoc></para>
        /// <para></para>
        /// </summary>
        [DisplayName("Default Measurement Cutoff")]
        [Description("")]
        [Option(OptionTypeEnum.optional)]
        public double? _Default_Measurement_Cutoff { get; set; } = null;


        /// <summary>
        /// <para>Default Capacity</para>
        /// <para><xdoc>
        ///   <para>This parameter is specific to the maximize capacitated coverage problem type. It is the default capacity assigned to all facilities in the analysis. You can override the default capacity for a facility by specifying a value in the facility's Capacity field.</para>
        ///   <para>The default value is 1.</para>
        /// </xdoc></para>
        /// <para><xdoc>
        ///   <para>此参数特定于最大电容覆盖率问题类型。它是分配给分析中所有设施点的默认容量。您可以通过在设施点的容量字段中指定值来覆盖设施点的默认容量。</para>
        ///   <para>默认值为 1。</para>
        /// </xdoc></para>
        /// <para></para>
        /// </summary>
        [DisplayName("Default Capacity")]
        [Description("")]
        [Option(OptionTypeEnum.optional)]
        public double _Default_Capacity { get; set; } = 1;


        /// <summary>
        /// <para>Target Market Share</para>
        /// <para><xdoc>
        ///   <para>This parameter is specific to the target market share problem type. It is the percentage of the total demand weight that you want the chosen and required facilities to capture. The solver identifies the minimum number of facilities needed to capture the target market share specified here.</para>
        ///   <para>The default value is 10 percent.</para>
        /// </xdoc></para>
        /// <para><xdoc>
        ///   <para>此参数特定于目标市场份额问题类型。它是您希望所选和所需设施捕获的总需求权重的百分比。求解器可确定捕获此处指定的目标市场份额所需的最小设施数。</para>
        ///   <para>默认值为 10%。</para>
        /// </xdoc></para>
        /// <para></para>
        /// </summary>
        [DisplayName("Target Market Share")]
        [Description("")]
        [Option(OptionTypeEnum.optional)]
        public double _Target_Market_Share { get; set; } = 10;


        /// <summary>
        /// <para>Measurement Transformation Model</para>
        /// <para><xdoc>
        ///   <para>This sets the equation for transforming the network cost between facilities and demand points. This parameter, along with Impedance Parameter, specifies how severely the network impedance between facilities and demand points influences the solver's choice of facilities.</para>
        ///   <para>In the following list of transformation options, d refers to demand points and f refers to facilities. Impedance refers to the shortest travel distance or time between two locations. So impedancedf is the shortest-path (time or distance) between demand point d and facility f, and costdf is the transformed travel time or distance between the facility and demand point. Lambda (λ) denotes the impedance parameter. The Measurement Units parameter determines whether travel time or distance is analyzed.</para>
        ///   <bulletList>
        ///     <bullet_item>Linear—costdf = λ * impedancedfThe transformed travel time or distance between the facility and the demand point is the same as the time or distance of the shortest path between the two locations. With this option, the impedance parameter (λ) is always set to one. This is the default.</bullet_item><para/>
        ///     <bullet_item>Power—costdf = impedancedfλThe transformed travel time or distance between the facility and the demand point is equal to the time or distance of the shortest path raised to the power specified by the impedance parameter (λ). Use the Power option with a positive impedance parameter to specify higher weight to nearby facilities.</bullet_item><para/>
        ///     <bullet_item>Exponential—costdf = e(λ * impedancedf)The transformed travel time or distance between the facility and the demand point is equal to the mathematical constant e raised to the power specified by the shortest-path network impedance multiplied with the impedance parameter (λ). Use the Exponential option with a positive impedance parameter to specify a high weight to nearby facilities.</bullet_item><para/>
        ///   </bulletList>
        ///   <para>The value set for this parameter can be overridden on a per-demand-point basis using the ImpedanceTransformation field in the input demand points.</para>
        /// </xdoc></para>
        /// <para><xdoc>
        ///   <para>这为转换设施和需求点之间的网络成本设定了方程式。此参数与阻抗参数一起指定设施点和请求点之间的网络阻抗对求解器设施选择的影响程度。</para>
        ///   <para>在以下变换选项列表中，d 表示需求点，f 表示设施点。阻抗是指两个位置之间的最短行驶距离或时间。因此，阻抗df是需求点 d 和设施点 f 之间的最短路径（时间或距离），costdf 是设施点和需求点之间的变换行程时间或距离。Lambda （λ） 表示阻抗参数。测量单位参数确定是分析行驶时间还是距离。</para>
        ///   <bulletList>
        ///     <bullet_item></bullet_item><para/>
        ///     <bullet_item></bullet_item><para/>
        ///     <bullet_item></bullet_item><para/>
        ///   </bulletList>
        ///   <para>可以使用输入需求点中的 ImpedanceTransformation 字段在每个需求点的基础上覆盖为此参数设置的值。</para>
        /// </xdoc></para>
        /// <para></para>
        /// </summary>
        [DisplayName("Measurement Transformation Model")]
        [Description("")]
        [Option(OptionTypeEnum.optional)]
        public _Measurement_Transformation_Model_value _Measurement_Transformation_Model { get; set; } = _Measurement_Transformation_Model_value._Linear;

        public enum _Measurement_Transformation_Model_value
        {
            /// <summary>
            /// <para>Linear</para>
            /// <para>Linear—costdf = λ * impedancedfThe transformed travel time or distance between the facility and the demand point is the same as the time or distance of the shortest path between the two locations. With this option, the impedance parameter (λ) is always set to one. This is the default.</para>
            /// <para></para>
            /// </summary>
            [Description("Linear")]
            [GPEnumValue("Linear")]
            _Linear,

            /// <summary>
            /// <para>Power</para>
            /// <para>Power—costdf = impedancedfλThe transformed travel time or distance between the facility and the demand point is equal to the time or distance of the shortest path raised to the power specified by the impedance parameter (λ). Use the Power option with a positive impedance parameter to specify higher weight to nearby facilities.</para>
            /// <para></para>
            /// </summary>
            [Description("Power")]
            [GPEnumValue("Power")]
            _Power,

            /// <summary>
            /// <para>Exponential</para>
            /// <para>Exponential—costdf = e(λ * impedancedf)The transformed travel time or distance between the facility and the demand point is equal to the mathematical constant e raised to the power specified by the shortest-path network impedance multiplied with the impedance parameter (λ). Use the Exponential option with a positive impedance parameter to specify a high weight to nearby facilities.</para>
            /// <para></para>
            /// </summary>
            [Description("Exponential")]
            [GPEnumValue("Exponential")]
            _Exponential,

        }

        /// <summary>
        /// <para>Measurement Transformation Factor</para>
        /// <para><xdoc>
        ///   <para>Provides a parameter value to the equations specified in the Measurement Transformation Model parameter. The parameter value is ignored when the impedance transformation is of type linear. For power and exponential impedance transformations, the value should be nonzero.</para>
        ///   <para>The default value is 1.</para>
        ///   <para>The value set for this parameter can be overridden on a per-demand-point basis using the ImpedanceParameter field in the input demand points.</para>
        /// </xdoc></para>
        /// <para><xdoc>
        ///   <para>为测量变换模型参数中指定的方程提供参数值。当阻抗变换为线性类型时，将忽略参数值。对于功率和指数阻抗变换，该值应为非零。</para>
        ///   <para>默认值为 1。</para>
        ///   <para>可以使用输入需求点中的 ImpedanceParameter 字段覆盖为每个需求点设置的值。</para>
        /// </xdoc></para>
        /// <para></para>
        /// </summary>
        [DisplayName("Measurement Transformation Factor")]
        [Description("")]
        [Option(OptionTypeEnum.optional)]
        public double _Measurement_Transformation_Factor { get; set; } = 1;


        /// <summary>
        /// <para>Travel Direction</para>
        /// <para><xdoc>
        ///   <para>Specifies whether travel times or distances will be measured from facilities to demand points or from demand points to facilities.</para>
        ///   <bulletList>
        ///     <bullet_item>Facility to Demand—The direction of travel is from facilities to demand points. This is the default.</bullet_item><para/>
        ///     <bullet_item>Demand to Facility—The direction of travel is from demand points to facilities.</bullet_item><para/>
        ///   </bulletList>
        ///   <para>Travel times and distances may change based on direction of travel. If traveling from point A to point B, you may encounter less traffic or have a shorter path, due to one-way streets and turn restrictions, than if you were traveling in the opposite direction. For instance, traveling from point A to point B may take 10 minutes, but traveling the other direction may take 15 minutes. These differing measurements may affect whether demand points can be assigned to certain facilities because of cutoffs or, for problem types in which demand is apportioned, affect how much demand is captured.</para>
        ///   <para>Fire departments commonly measure from facilities to demand points since they are concerned with the time it takes to travel from the fire station (facility) to the location of the emergency (demand point). Management at a retail store is more concerned with the time it takes shoppers (demand points) to reach the store (facility); therefore, store management commonly measure from demand points to facilities.</para>
        ///   <para>Travel Direction also determines the meaning of any start time that is provided. See the Time of Day parameter for more information.</para>
        /// </xdoc></para>
        /// <para><xdoc>
        ///   <para>指定是测量从设施点到请求点还是从请求点到功能点的行程时间或距离。</para>
        ///   <bulletList>
        ///     <bullet_item></bullet_item><para/>
        ///     <bullet_item></bullet_item><para/>
        ///   </bulletList>
        ///   <para>旅行时间和距离可能会根据行进方向而变化。如果从 A 点行驶到 B 点，由于单行道和转弯限制，您可能会遇到更少的交通或路径更短，而不是向相反方向行驶。例如，从 A 点到 B 点可能需要 10 分钟，但向另一个方向行驶可能需要 15 分钟。这些不同的测量值可能会影响是否可以因截止而将需求点分配给某些设施点，或者对于分配需求的问题类型，可能会影响捕获的需求量。</para>
        ///   <para>消防部门通常从设施到需求点进行测量，因为他们关注从消防站（设施）到紧急情况（需求点）的位置所需的时间。零售店的管理层更关心购物者（需求点）到达商店（设施）所需的时间;因此，商店管理通常从需求点到设施进行衡量。</para>
        ///   <para>“行进方向”还决定了所提供的任何开始时间的含义。有关详细信息，请参阅时间参数。</para>
        /// </xdoc></para>
        /// <para></para>
        /// </summary>
        [DisplayName("Travel Direction")]
        [Description("")]
        [Option(OptionTypeEnum.optional)]
        public _Travel_Direction_value _Travel_Direction { get; set; } = _Travel_Direction_value._Facility_to_Demand;

        public enum _Travel_Direction_value
        {
            /// <summary>
            /// <para>Demand to Facility</para>
            /// <para>Demand to Facility—The direction of travel is from demand points to facilities.</para>
            /// <para></para>
            /// </summary>
            [Description("Demand to Facility")]
            [GPEnumValue("Demand to Facility")]
            _Demand_to_Facility,

            /// <summary>
            /// <para>Facility to Demand</para>
            /// <para>Facility to Demand—The direction of travel is from facilities to demand points. This is the default.</para>
            /// <para></para>
            /// </summary>
            [Description("Facility to Demand")]
            [GPEnumValue("Facility to Demand")]
            _Facility_to_Demand,

        }

        /// <summary>
        /// <para>Time of Day</para>
        /// <para><xdoc>
        ///   <para>The time at which travel begins. This parameter is ignored unless Measurement Units is time based. The default is no time or date. When Time of Day isn't specified, the solver uses generic speeds—typically those from posted speed limits.</para>
        ///   <para>Traffic constantly changes in reality, and as it changes, travel times between facilities and demand points fluctuate. Therefore, indicating different time and date values over several analyses may affect how demand is allocated to facilities and which facilities are chosen in the results.</para>
        ///   <para>The time of day always indicates a start time. However, travel may start from facilities or demand points; it depends on what you choose for the Travel Direction parameter.</para>
        ///   <para>The Time Zone for Time of Day parameter specifies whether this time and date refer to UTC or the time zone in which the facility or demand point is located.</para>
        /// </xdoc></para>
        /// <para><xdoc>
        ///   <para>旅行开始的时间。除非“测量单位”是基于时间的，否则将忽略此参数。默认值为“无时间”或“日期”。如果未指定“时间”，则求解器将使用通用速度，通常是来自发布的速度限制的速度。</para>
        ///   <para>交通在现实中不断变化，随着交通的变化，设施和需求点之间的旅行时间也会波动。因此，在多个分析中指示不同的时间和日期值可能会影响需求分配给设施点的方式以及在结果中选择哪些设施点。</para>
        ///   <para>一天中的时间始终指示开始时间。但是，旅行可能从设施或需求点开始;这取决于您为行进方向参数选择的内容。</para>
        ///   <para>时段时区参数指定此时间和日期是指 UTC 还是设施点或请求点所在的时区。</para>
        /// </xdoc></para>
        /// <para></para>
        /// </summary>
        [DisplayName("Time of Day")]
        [Description("")]
        [Option(OptionTypeEnum.optional)]
        public object _Time_of_Day { get; set; } = null;


        /// <summary>
        /// <para>Time Zone for Time of Day</para>
        /// <para><xdoc>
        ///   <para>Specifies the time zone of the Time of Day parameter. The default is geographically local.</para>
        ///   <bulletList>
        ///     <bullet_item>Geographically Local—The Time of Day parameter refers to the time zone in which the facilities or demand points are located. If Travel Direction is facilities to demand points, this is the time zone of the facilities. If Travel Direction is demand points to facilities, this is the time zone of the demand points.</bullet_item><para/>
        ///     <bullet_item>UTC—The Time of Day parameter refers to coordinated universal time (UTC). Choose this option if you want to find the best location for a specific time, such as now, but aren't certain in which time zone the facilities or demand points will be located.</bullet_item><para/>
        ///   </bulletList>
        ///   <para>Regardless of the Time Zone for Time of Day parameter value, the following rules are enforced by the tool if your facilities and demand points are in multiple time zones:
        ///   <bulletList>
        ///     <bullet_item>All facilities must be in the same time zone when specifying a time of day and travel is from facility to demand.  </bullet_item><para/>
        ///     <bullet_item>All demand points must be in the same time zone when specifying a time of day and travel is from demand to facility.  </bullet_item><para/>
        ///   </bulletList>
        ///   </para>
        /// </xdoc></para>
        /// <para><xdoc>
        ///   <para>指定 Time of Day 参数的时区。默认值为地理位置本地。</para>
        ///   <bulletList>
        ///     <bullet_item></bullet_item><para/>
        ///     <bullet_item></bullet_item><para/>
        ///   </bulletList>
        /// <para>无论“时段的时区”参数值如何，如果您的设施点和需求点位于多个时区，则该工具都会强制执行以下规则：
        ///   <bulletList>
        ///     <bullet_item>在指定一天中的时间时，所有设施必须位于同一时区，并且行程是从设施到需求。</bullet_item><para/>
        ///     <bullet_item>在指定一天中的时间时，所有需求点必须位于同一时区，并且从需求点到设施点的行程必须相同。</bullet_item><para/>
        ///   </bulletList>
        ///   </para>
        /// </xdoc></para>
        /// <para></para>
        /// </summary>
        [DisplayName("Time Zone for Time of Day")]
        [Description("")]
        [Option(OptionTypeEnum.optional)]
        public _Time_Zone_for_Time_of_Day_value _Time_Zone_for_Time_of_Day { get; set; } = _Time_Zone_for_Time_of_Day_value._Geographically_Local;

        public enum _Time_Zone_for_Time_of_Day_value
        {
            /// <summary>
            /// <para>Geographically Local</para>
            /// <para>Geographically Local—The Time of Day parameter refers to the time zone in which the facilities or demand points are located. If Travel Direction is facilities to demand points, this is the time zone of the facilities. If Travel Direction is demand points to facilities, this is the time zone of the demand points.</para>
            /// <para></para>
            /// </summary>
            [Description("Geographically Local")]
            [GPEnumValue("Geographically Local")]
            _Geographically_Local,

            /// <summary>
            /// <para>UTC</para>
            /// <para>UTC—The Time of Day parameter refers to coordinated universal time (UTC). Choose this option if you want to find the best location for a specific time, such as now, but aren't certain in which time zone the facilities or demand points will be located.</para>
            /// <para></para>
            /// </summary>
            [Description("UTC")]
            [GPEnumValue("UTC")]
            _UTC,

        }

        /// <summary>
        /// <para>UTurn at Junctions</para>
        /// <para><xdoc>
        ///   <para></para>
        ///   <para>Specifies the U-turn policy at junctions. Allowing U-turns implies the solver can turn around at a junction and double back on the same street. Given that junctions represent street intersections and dead ends, different vehicles may be able to turn around at some junctions but not at others—it depends on whether the junction represents an intersection or dead end. To accommodate this, the U-turn policy parameter is implicitly specified by the number of edges that connect to the junction, which is known as junction valency. The acceptable values for this parameter are listed below; each is followed by a description of its meaning in terms of junction valency.</para>
        ///   <bulletList>
        ///     <bullet_item>Allowed—U-turns are permitted at junctions with any number of connected edges. This is the default value.</bullet_item><para/>
        ///     <bullet_item>Not Allowed—U-turns are prohibited at all junctions, regardless of junction valency. Note, however, that U-turns are still permitted at network locations even when this option is chosen; however, you can set the individual network locations' CurbApproach attribute to prohibit U-turns there as well.</bullet_item><para/>
        ///     <bullet_item>Allowed only at Dead Ends—U-turns are prohibited at all junctions except those that have only one adjacent edge (a dead end).</bullet_item><para/>
        ///     <bullet_item>Allowed only at Intersections and Dead Ends—U-turns are prohibited at junctions where exactly two adjacent edges meet but are permitted at intersections (junctions with three or more adjacent edges) and dead ends (junctions with exactly one adjacent edge). Often, networks have extraneous junctions in the middle of road segments. This option prevents vehicles from making U-turns at these locations.</bullet_item><para/>
        ///   </bulletList>
        ///   <para>This parameter is ignored unless Travel Mode is set to Custom.</para>
        /// </xdoc></para>
        /// <para><xdoc>
        ///   <para></para>
        ///   <para>指定交汇点处的掉头策略。允许掉头意味着求解器可以在交叉路口掉头，并在同一条街道上折返。鉴于交叉路口代表街道交叉路口和死胡同，不同的车辆可能在某些交叉路口掉头，但在其他交叉路口则不能掉头——这取决于交叉路口是代表交叉路口还是死胡同。为了适应这种情况，U 形转弯策略参数由连接到交汇点的边数隐式指定，这称为交汇点化合价。下面列出了此参数的可接受值;每个之后都描述了其在结化合价方面的含义。</para>
        ///   <bulletList>
        ///     <bullet_item>允许 - 允许在具有任意数量连接边的交汇处进行 U 形转弯。这是默认值。</bullet_item><para/>
        ///     <bullet_item>不允许 - 无论交汇点化合价如何，所有交汇点都禁止掉头。但请注意，即使选择此选项，仍允许在网络位置掉头;但是，您也可以设置各个网络位置的 CurbApproach 属性，以禁止掉头。</bullet_item><para/>
        ///     <bullet_item>仅在死角处允许 - 禁止在所有交叉路口掉头，但只有一个相邻边（死胡同）的交叉路口除外。</bullet_item><para/>
        ///     <bullet_item>仅在交叉口和死端允许 - 在恰好有两条相邻边相交的交汇处禁止掉头，但在交叉点（具有三个或更多相邻边的交汇点）和死端（恰好具有一条相邻边的交汇点）允许掉头。通常，网络在路段中间有无关的交叉路口。此选项可防止车辆在这些位置掉头。</bullet_item><para/>
        ///   </bulletList>
        ///   <para>除非将“出行模式”设置为“自定义”，否则将忽略此参数。</para>
        /// </xdoc></para>
        /// <para></para>
        /// </summary>
        [DisplayName("UTurn at Junctions")]
        [Description("")]
        [Option(OptionTypeEnum.optional)]
        public _UTurn_at_Junctions_value _UTurn_at_Junctions { get; set; } = _UTurn_at_Junctions_value._Allowed_Only_at_Intersections_and_Dead_Ends;

        public enum _UTurn_at_Junctions_value
        {
            /// <summary>
            /// <para>Allowed</para>
            /// <para>Allowed—U-turns are permitted at junctions with any number of connected edges. This is the default value.</para>
            /// <para>允许 - 允许在具有任意数量连接边的交汇处进行 U 形转弯。这是默认值。</para>
            /// </summary>
            [Description("Allowed")]
            [GPEnumValue("Allowed")]
            _Allowed,

            /// <summary>
            /// <para>Not Allowed</para>
            /// <para>Not Allowed—U-turns are prohibited at all junctions, regardless of junction valency. Note, however, that U-turns are still permitted at network locations even when this option is chosen; however, you can set the individual network locations' CurbApproach attribute to prohibit U-turns there as well.</para>
            /// <para>不允许 - 无论交汇点化合价如何，所有交汇点都禁止掉头。但请注意，即使选择此选项，仍允许在网络位置掉头;但是，您也可以设置各个网络位置的 CurbApproach 属性，以禁止掉头。</para>
            /// </summary>
            [Description("Not Allowed")]
            [GPEnumValue("Not Allowed")]
            _Not_Allowed,

            /// <summary>
            /// <para>Allowed only at Dead Ends</para>
            /// <para>Allowed only at Dead Ends—U-turns are prohibited at all junctions except those that have only one adjacent edge (a dead end).</para>
            /// <para>仅在死角处允许 - 禁止在所有交叉路口掉头，但只有一个相邻边（死胡同）的交叉路口除外。</para>
            /// </summary>
            [Description("Allowed only at Dead Ends")]
            [GPEnumValue("Allowed Only at Dead Ends")]
            _Allowed_Only_at_Dead_Ends,

            /// <summary>
            /// <para>Allowed only at Intersections and Dead Ends</para>
            /// <para>Allowed only at Intersections and Dead Ends—U-turns are prohibited at junctions where exactly two adjacent edges meet but are permitted at intersections (junctions with three or more adjacent edges) and dead ends (junctions with exactly one adjacent edge). Often, networks have extraneous junctions in the middle of road segments. This option prevents vehicles from making U-turns at these locations.</para>
            /// <para>仅在交叉口和死端允许 - 在恰好有两条相邻边相交的交汇处禁止掉头，但在交叉点（具有三个或更多相邻边的交汇点）和死端（恰好具有一条相邻边的交汇点）允许掉头。通常，网络在路段中间有无关的交叉路口。此选项可防止车辆在这些位置掉头。</para>
            /// </summary>
            [Description("Allowed only at Intersections and Dead Ends")]
            [GPEnumValue("Allowed Only at Intersections and Dead Ends")]
            _Allowed_Only_at_Intersections_and_Dead_Ends,

        }

        /// <summary>
        /// <para>Point Barriers</para>
        /// <para><xdoc>
        ///   <para>Use this parameter to specify one or more points that will act as temporary restrictions or represent additional time or distance that may be required to travel on the underlying streets. For example, a point barrier can be used to represent a fallen tree along a street or a time delay spent at a railroad crossing.</para>
        ///   <para>The tool imposes a limit of 250 points that can be added as barriers.</para>
        ///   <para>When specifying point barriers, you can set properties for each, such as its name or barrier type, using the following attributes:</para>
        ///   <para>Name</para>
        ///   <para>The name of the barrier.</para>
        ///   <para>BarrierType</para>
        ///   <para>Specifies whether the point barrier restricts travel completely or adds time or distance when it is crossed. The value for this attribute is specified as one of the following integers (use the numeric code, not the name in parentheses):</para>
        ///   <para>
        ///     <bulletList>
        ///       <bullet_item>
        ///         <para>0 (Restriction)—Prohibits travel through the barrier. The barrier is referred to as a restriction point barrier since it acts as a restriction.</para>
        ///       </bullet_item><para/>
        ///       <bullet_item>
        ///         <para>2 (Added Cost)—Traveling through the barrier increases the travel time or distance by the amount specified in the Additional_Time, Additional_Distance, or Additional_Cost field. This barrier type is referred to as an added cost point barrier.</para>
        ///       </bullet_item><para/>
        ///     </bulletList>
        ///   </para>
        ///   <para>Additional_Time</para>
        ///   <para>The added travel time when the barrier is traversed. This field is applicable only for added-cost barriers and when the Measurement Units parameter value is time based.</para>
        ///   <para>This field value must be greater than or equal to zero, and its units must be the same as those specified in the Measurement Units parameter.</para>
        ///   <para>Additional_Distance</para>
        ///   <para>The added distance when the barrier is traversed. This field is applicable only for added-cost barriers and when the Measurement Units parameter value is distance based.</para>
        ///   <para>The field value must be greater than or equal to zero, and its units must be the same as those specified in the Measurement Units parameter.</para>
        ///   <para>Additional_Cost</para>
        ///   <para>The added cost when the barrier is traversed. This field is applicable only for added-cost barriers when the Measurement Units parameter value is neither time based nor distance based.</para>
        ///   <para>FullEdge</para>
        ///   <para>Specifies how the restriction point barriers are applied to the edge elements during the analysis. The field value is specified as one of the following integers (use the numeric code, not the name in parentheses):</para>
        ///   <para>
        ///     <bulletList>
        ///       <bullet_item>0 (False)—Permits travel on the edge up to the barrier but not through it. This is the default value.</bullet_item><para/>
        ///       <bullet_item>1 (True)—Restricts travel anywhere on the associated edge.</bullet_item><para/>
        ///     </bulletList>
        ///   </para>
        ///   <para>CurbApproach</para>
        ///   <para>Specifies the direction of traffic that is affected by the barrier. The field value is specified as one of the following integers (use the numeric code, not the name in parentheses):</para>
        ///   <para>
        ///     <bulletList>
        ///       <bullet_item>0 (Either side of vehicle)—The barrier affects travel over the edge in both directions.</bullet_item><para/>
        ///       <bullet_item>1 (Right side of vehicle)—Vehicles are only affected if the barrier is on their right side during the approach. Vehicles that traverse the same edge but approach the barrier on their left side are not affected by the barrier.</bullet_item><para/>
        ///       <bullet_item>2 (Left side of vehicle)—Vehicles are only affected if the barrier is on their left side during the approach. Vehicles that traverse the same edge but approach the barrier on their right side are not affected by the barrier.</bullet_item><para/>
        ///     </bulletList>
        ///   </para>
        ///   <para>Because junctions are points and don't have a side, barriers on junctions affect all vehicles regardless of the curb approach.</para>
        ///   <para>The CurbApproach attribute works with both types of national driving standards: right-hand traffic (United States) and left-hand traffic (United Kingdom). First, consider a facility on the left side of a vehicle. It is always on the left side regardless of whether the vehicle travels on the left or right half of the road. What may change with national driving standards is your decision to approach a facility from one of two directions, that is, so it ends up on the right or left side of the vehicle. For example, to arrive at a facility and not have a lane of traffic between the vehicle and the facility, choose 1 (Right side of vehicle) in the United States and 2 (Left side of vehicle) in the United Kingdom.</para>
        ///   <para>Bearing</para>
        ///   <para>The direction in which a point is moving. The units are degrees and are measured clockwise from true north. This field is used in conjunction with the BearingTol field.</para>
        ///   <para>Bearing data is usually sent automatically from a mobile device equipped with a GPS receiver. Try to include bearing data if you are loading an input location that is moving, such as a pedestrian or a vehicle.</para>
        ///   <para>Using this field tends to prevent adding locations to the wrong edges, which can occur when a vehicle is near an intersection or an overpass, for example. Bearing also helps the tool determine on which side of the street the point is.</para>
        ///   <para>BearingTol</para>
        ///   <para>The bearing tolerance value creates a range of acceptable bearing values when locating moving points on an edge using the Bearing field. If the Bearing field value is within the range of acceptable values that are generated from the bearing tolerance on an edge, the point can be added as a network location there; otherwise, the closest point on the next-nearest edge is evaluated.</para>
        ///   <para>The units are in degrees, and the default value is 30. Values must be greater than 0 and less than 180. A value of 30 means that when Network Analyst attempts to add a network location on an edge, a range of acceptable bearing values is generated 15 degrees to either side of the edge (left and right) and in both digitized directions of the edge.</para>
        ///   <para>NavLatency</para>
        ///   <para>This field is only used in the solve process if the Bearing and BearingTol fields also have values; however, entering a NavLatency field value is optional, even when values are present in Bearing and BearingTol. NavLatency indicates how much cost is expected to elapse from the moment GPS information is sent from a moving vehicle to a server and the moment the processed route is received by the vehicle's navigation device.</para>
        ///   <para>The units of NavLatency are the same as the units of the impedance attribute.</para>
        /// </xdoc></para>
        /// <para><xdoc>
        ///   <para>使用此参数可指定一个或多个点，这些点将充当临时限制，或表示在基础街道上行驶可能需要的额外时间或距离。例如，点障碍可用于表示街道上倒下的树木或在铁路道口花费的时间延迟。</para>
        ///   <para>该工具施加了 250 个点的限制，可以将其添加为障碍。</para>
        ///   <para>指定点障碍时，可以使用以下属性为每个点障碍设置属性，例如其名称或障碍类型：</para>
        ///   <para>名字</para>
        ///   <para>屏障的名称。</para>
        ///   <para>屏障类型</para>
        ///   <para>指定点障碍是完全限制行程，还是在越过点障碍时增加时间或距离。此属性的值指定为以下整数之一（使用数字代码，而不是括号中的名称）：</para>
        ///   <para>
        ///     <bulletList>
        ///       <bullet_item>
        ///         <para>0（限制）- 禁止通过障碍物。该屏障被称为限制点屏障，因为它充当限制。</para>
        ///       </bullet_item><para/>
        ///       <bullet_item>
        ///         <para>2 （附加成本） - 穿越障碍物会增加行驶时间或距离，增加Additional_Time、Additional_Distance或Additional_Cost字段中指定的量。此屏障类型称为附加成本点屏障。</para>
        ///       </bullet_item><para/>
        ///     </bulletList>
        ///   </para>
        ///   <para>Additional_Time</para>
        ///   <para>穿越障碍物时增加的行程时间。此字段仅适用于附加成本障碍和“度量单位”参数值基于时间的情况。</para>
        ///   <para>此字段值必须大于或等于零，并且其单位必须与测量单位参数中指定的单位相同。</para>
        ///   <para>Additional_Distance</para>
        ///   <para>穿越障碍物时增加的距离。此字段仅适用于附加成本障碍和测量单位参数值基于距离的情况。</para>
        ///   <para>字段值必须大于或等于零，并且其单位必须与测量单位参数中指定的单位相同。</para>
        ///   <para>Additional_Cost</para>
        ///   <para>穿越障碍物时增加的成本。此字段仅适用于“度量单位”参数值既不基于时间也不基于距离的附加成本障碍。</para>
        ///   <para>FullEdge的</para>
        ///   <para>指定在分析过程中如何将限制点屏障应用于边图元。字段值指定为以下整数之一（使用数字代码，而不是括号中的名称）：</para>
        ///   <para>
        ///     <bulletList>
        ///       <bullet_item>0 （False） - 允许在边缘上行驶至障碍物，但不能穿过障碍物。这是默认值。</bullet_item><para/>
        ///       <bullet_item>1 （True） - 限制关联边上任意位置的行程。</bullet_item><para/>
        ///     </bulletList>
        ///   </para>
        ///   <para>遏制方法</para>
        ///   <para>指定受障碍物影响的交通方向。字段值指定为以下整数之一（使用数字代码，而不是括号中的名称）：</para>
        ///   <para>
        ///     <bulletList>
        ///       <bullet_item>0（车辆的任一侧）- 障碍物影响两个方向的边缘行驶。</bullet_item><para/>
        ///       <bullet_item>1（车辆右侧）- 仅当障碍物在进近过程中位于其右侧时，车辆才会受到影响。穿越同一边缘但接近左侧障碍物的车辆不受障碍物的影响。</bullet_item><para/>
        ///       <bullet_item>2（车辆左侧）- 仅当障碍物在进近过程中位于其左侧时，车辆才会受到影响。穿越同一边缘但接近右侧障碍物的车辆不受障碍物的影响。</bullet_item><para/>
        ///     </bulletList>
        ///   </para>
        ///   <para>由于交叉路口是点，没有边，因此无论路缘方法如何，交叉路口上的障碍物都会影响所有车辆。</para>
        ///   <para>CurbApproach 属性适用于两种类型的国家/地区驾驶标准：右侧交通（美国）和左侧交通（英国）。首先，考虑车辆左侧的设施。无论车辆是在道路的左半部分还是右半部分行驶，它始终在左侧。随着国家驾驶标准的变化，您决定从两个方向之一接近设施，也就是说，它最终位于车辆的右侧或左侧。例如，要到达设施点，并且车辆和设施点之间没有车道，请在美国选择 1（车辆右侧），在英国选择 2（车辆左侧）。</para>
        ///   <para>轴承</para>
        ///   <para>点移动的方向。单位是度数，从正北顺时针测量。此字段与 BearingTol 字段结合使用。</para>
        ///   <para>轴承数据通常从配备 GPS 接收器的移动设备自动发送。如果要加载正在移动的输入位置（例如行人或车辆），请尝试包含方位角数据。</para>
        ///   <para>使用此字段可以防止将位置添加到错误的边缘，例如，当车辆靠近交叉路口或立交桥时，可能会发生这种情况。方位角还有助于工具确定点在街道的哪一侧。</para>
        ///   <para>轴承Tol</para>
        ///   <para>当使用“轴承”（Bearing） 场在边上定位移动点时，轴承公差值会创建可接受的轴承值范围。如果“方位角”（Bearing field） 值在边上的方位公差生成的可接受值范围内，则可以将该点添加为该点的网络位置;否则，将计算下一个最近边上的最近点。</para>
        ///   <para>单位以度为单位，默认值为 30。值必须大于 0 且小于 180。值为 30 表示当 Network Analyst 尝试在边上添加网络位置时，将在边的任一侧（左侧和右侧）以及边的两个数字化方向上生成一系列可接受的方位角值。</para>
        ///   <para>NavLatency（导航延迟）</para>
        ///   <para>仅当 Bearing 和 BearingTol 字段也具有值时，此字段才用于求解过程;但是，输入 NavLatency 字段值是可选的，即使值存在于 Bearing 和 BearingTol 中也是如此。NavLatency 表示从 GPS 信息从移动车辆发送到服务器的那一刻到车辆的导航设备接收到处理路线的那一刻，预计会花费多少成本。</para>
        ///   <para>NavLatency 的单位与阻抗属性的单位相同。</para>
        /// </xdoc></para>
        /// <para></para>
        /// </summary>
        [DisplayName("Point Barriers")]
        [Description("")]
        [Option(OptionTypeEnum.optional)]
        public object _Point_Barriers { get; set; } = null;


        /// <summary>
        /// <para>Line Barriers</para>
        /// <para><xdoc>
        ///   <para>Use this parameter to specify one or more lines that prohibit travel anywhere the lines intersect the streets. For example, a parade or protest that blocks traffic across several street segments can be modeled with a line barrier. A line barrier can also quickly fence off several roads from being traversed, thereby channeling possible routes away from undesirable parts of the street network.</para>
        ///   <para>The tool imposes a limit on the number of streets you can restrict using the Line Barriers parameter. While there is no limit to the number of lines you can specify as line barriers, the combined number of streets intersected by all the lines cannot exceed 500.</para>
        ///   <para>When specifying the line barriers, you can set name and barrier type properties for each using the following attributes:</para>
        ///   <para>Name</para>
        ///   <para>The name of the barrier.</para>
        /// </xdoc></para>
        /// <para><xdoc>
        ///   <para>使用此参数可指定一条或多条线，这些线禁止这些线与街道相交的任何位置行驶。例如，可以使用线路障碍对阻塞多个街段交通的游行或抗议活动进行建模。线路障碍还可以快速将几条道路围起来，使其无法穿越，从而将可能的路线从街道网络的不良部分引导出去。</para>
        ///   <para>该工具对可以使用线屏障参数限制的街道数量施加限制。虽然可以指定为线障碍的线数没有限制，但所有线相交的街道总数不能超过 500 条。</para>
        ///   <para>指定线屏障时，可以使用以下属性为每个屏障设置名称和屏障类型属性：</para>
        ///   <para>名字</para>
        ///   <para>屏障的名称。</para>
        /// </xdoc></para>
        /// <para></para>
        /// </summary>
        [DisplayName("Line Barriers")]
        [Description("")]
        [Option(OptionTypeEnum.optional)]
        public object _Line_Barriers { get; set; } = null;


        /// <summary>
        /// <para>Polygon Barriers</para>
        /// <para><xdoc>
        ///   <para>Use this parameter to specify polygons that either completely restrict travel or proportionately scale the time or distance required to travel on the streets intersected by the polygons.</para>
        ///   <para>The service imposes a limit on the number of streets you can restrict using the Polygon Barriers parameter. While there is no limit to the number of polygons you can specify as polygon barriers, the combined number of streets intersected by all the polygons cannot exceed 2,000.</para>
        ///   <para>When specifying the polygon barriers, you can set properties for each, such as its name or barrier type, using the following attributes:</para>
        ///   <para>Name</para>
        ///   <para>The name of the barrier.</para>
        ///   <para>BarrierType</para>
        ///   <para>Specifies whether the barrier restricts travel completely or scales the cost (such as time or distance) for traveling through it. The field value is specified as one of the following integers (use the numeric code, not the name in parentheses):</para>
        ///   <para>
        ///     <bulletList>
        ///       <bullet_item>
        ///         <para>0 (Restriction)—Prohibits traveling through any part of the barrier. The barrier is referred to as a restriction polygon barrier since it prohibits traveling on streets intersected by the barrier. One use of this type of barrier is to model floods covering areas of the street that make traveling on those streets impossible.</para>
        ///       </bullet_item><para/>
        ///       <bullet_item>
        ///         <para>1 (Scaled Cost)—Scales the cost (such as travel time or distance) required to travel the underlying streets by a factor specified using the ScaledTimeFactor or ScaledDistanceFactor field. If the streets are partially covered by the barrier, the travel time or distance is apportioned and then scaled. For example, a factor of 0.25 means that travel on underlying streets is expected to be four times faster than normal. A factor of 3.0 means it is expected to take three times longer than normal to travel on underlying streets. This barrier type is referred to as a scaled-cost polygon barrier. It can be used to model storms that reduce travel speeds in specific regions.</para>
        ///       </bullet_item><para/>
        ///     </bulletList>
        ///   </para>
        ///   <para>ScaledTimeFactor</para>
        ///   <para>This is the factor by which the travel time of the streets intersected by the barrier is multiplied. The field value must be greater than zero.</para>
        ///   <para>This field is applicable only for scaled-cost barriers and when the Measurement Units parameter is time-based.</para>
        ///   <para>ScaledDistanceFactor</para>
        ///   <para>This is the factor by which the distance of the streets intersected by the barrier is multiplied. The field value must be greater than zero.</para>
        ///   <para>This field is applicable only for scaled-cost barriers and when the Measurement Units parameter is distance-based.</para>
        ///   <para>ScaledCostFactor</para>
        ///   <para>This is the factor by which the cost of the streets intersected by the barrier is multiplied. The field value must be greater than zero.</para>
        ///   <para>This field is applicable only for scaled-cost barriers when the Measurement Units parameter is neither time-based nor distance-based.</para>
        /// </xdoc></para>
        /// <para><xdoc>
        ///   <para>使用此参数可以指定完全限制出行或按比例缩放在与多边形相交的街道上出行所需的时间或距离的多边形。</para>
        ///   <para>该服务对可以使用面障碍参数限制的街道数施加限制。虽然可以指定为面障碍的面的数量没有限制，但所有面相交的街道总数不能超过 2,000。</para>
        ///   <para>指定多边形障碍时，可以使用以下属性为每个面障碍设置属性，例如其名称或障碍类型：</para>
        ///   <para>名字</para>
        ///   <para>屏障的名称。</para>
        ///   <para>屏障类型</para>
        ///   <para>指定障碍是完全限制旅行还是缩放通过障碍物的成本（如时间或距离）。字段值指定为以下整数之一（使用数字代码，而不是括号中的名称）：</para>
        ///   <para>
        ///     <bulletList>
        ///       <bullet_item>
        ///         <para>0（限制）- 禁止通过屏障的任何部分。该障碍物称为限制多边形障碍，因为它禁止在与障碍物相交的街道上行驶。这种屏障的一个用途是模拟覆盖街道区域的洪水，这些区域使这些街道无法行驶。</para>
        ///       </bullet_item><para/>
        ///       <bullet_item>
        ///         <para>1 （缩放成本） - 按使用 ScaledTimeFactor 或 ScaledDistanceFactor 字段指定的系数缩放行驶基础街道所需的成本（例如行驶时间或距离）。如果街道部分被障碍物覆盖，则会分摊行驶时间或距离，然后进行缩放。例如，系数 0.25 意味着在底层街道上的行驶速度预计将比正常情况快四倍。3.0 的系数意味着预计在底层街道上行驶所需的时间是正常情况的三倍。此屏障类型称为按比例开本的面屏障。它可用于模拟降低特定区域行进速度的风暴。</para>
        ///       </bullet_item><para/>
        ///     </bulletList>
        ///   </para>
        ///   <para>ScaledTimeFactor</para>
        ///   <para>这是与障碍物相交的街道的行驶时间乘以的系数。字段值必须大于零。</para>
        ///   <para>此字段仅适用于缩放成本障碍和度量单位参数基于时间的情况。</para>
        ///   <para>ScaledDistanceFactor</para>
        ///   <para>这是与障碍物相交的街道距离乘以的系数。字段值必须大于零。</para>
        ///   <para>此字段仅适用于缩放成本障碍和度量单位参数基于距离的情况。</para>
        ///   <para>ScaledCostFactor（缩放成本因子）</para>
        ///   <para>这是与障碍物相交的街道成本成倍增加的因素。字段值必须大于零。</para>
        ///   <para>此字段仅适用于“度量单位”参数既不基于时间也不基于距离的缩放成本障碍。</para>
        /// </xdoc></para>
        /// <para></para>
        /// </summary>
        [DisplayName("Polygon Barriers")]
        [Description("")]
        [Option(OptionTypeEnum.optional)]
        public object _Polygon_Barriers { get; set; } = null;


        /// <summary>
        /// <para>Use Hierarchy</para>
        /// <para><xdoc>
        ///   <para>Specifies whether hierarchy will be used when finding the shortest path between facilities and demand points.</para>
        ///   <para>
        ///     <bulletList>
        ///       <bullet_item>Checked (True)—Hierarchy will be used when measuring between facilities and demand points. When hierarchy is used, the tool prefers higher-order streets (such as freeways) to lower-order streets (such as local roads) and can be used to simulate the driver preference of traveling on freeways instead of local roads even if that means a longer trip. This is especially true when finding routes to faraway locations, because drivers on long-distance trips tend to prefer traveling on freeways where stops, intersections, and turns can be avoided. Using hierarchy is computationally faster, especially for long-distance routes, since the tool can determine the best route from a relatively smaller subset of streets.</bullet_item><para/>
        ///       <bullet_item>Unchecked (False)—Hierarchy will not be used when measuring between facilities and demand points. If hierarchy is not used, the tool considers all streets and doesn't prefer higher-order streets when finding the route. This is often used when finding short-distance routes within a city.</bullet_item><para/>
        ///     </bulletList>
        ///   </para>
        ///   <para>The tool automatically reverts to using hierarchy if the straight-line distance between facilities and demand points is greater than 50 miles, even if you set this parameter to not use hierarchy.</para>
        /// </xdoc></para>
        /// <para><xdoc>
        ///   <para>指定在查找设施点和请求点之间的最短路径时是否使用层次结构。</para>
        ///   <para>
        ///     <bulletList>
        ///       <bullet_item></bullet_item><para/>
        ///       <bullet_item></bullet_item><para/>
        ///     </bulletList>
        ///   </para>
        ///   <para>如果设施点和需求点之间的直线距离大于 50 英里，即使将此参数设置为不使用层次结构，该工具也会自动恢复为使用层次结构。</para>
        /// </xdoc></para>
        /// <para></para>
        /// </summary>
        [DisplayName("Use Hierarchy")]
        [Description("")]
        [Option(OptionTypeEnum.optional)]
        public object _Use_Hierarchy { get; set; } = null;


        /// <summary>
        /// <para>Restrictions</para>
        /// <para><xdoc>
        ///   <para>Specifies which restrictions will be honored by the tool when finding the best routes between facilities and demand points.</para>
        ///   <para>A restriction represents a driving preference or requirement. In most cases, restrictions cause roads to be prohibited. For instance, using the Avoid Toll Roads restriction will result in a route that will include toll roads only when it is required to travel on toll roads to visit an incident or a facility. Height Restriction makes it possible to route around any clearances that are lower than the height of your vehicle. If you are carrying corrosive materials on your vehicle, using the Any Hazmat Prohibited restriction prevents hauling the materials along roads where it is marked illegal to do so.</para>
        ///   <para>
        ///     <para>Some restrictions require an additional value to be specified for their use. This value must be associated with the restriction name and a specific parameter intended to work with the restriction. You can identify such restrictions if their names appear in the AttributeName column in the Attribute Parameter Values parameter. The ParameterValue field should be specified in the Attribute Parameter Values parameter for the restriction to be correctly used when finding traversable roads.</para>
        ///   </para>
        ///   <para>
        ///     <para>Some restrictions are supported only in certain countries; their availability is stated by region in the list below. Of the restrictions that have limited availability within a region, you can determine whether the restriction is available in a particular country by reviewing the table in the Country list section of Network analysis coverage. If a country has a value of Yes in the Logistics Attribute column, the restriction with select availability in the region is supported in that country. If you specify restriction names that are not available in the country where your incidents are located, the service ignores the invalid restrictions. The service also ignores restrictions when the Restriction Usage attribute parameter value is between 0 and 1 (see the Attribute Parameter Value parameter). It prohibits all restrictions when the Restriction Usage parameter value is greater than 0.</para>
        ///   </para>
        ///   <para>The values you provide for this parameter are ignored unless Travel Mode is set to Custom.</para>
        ///   <para>The tool supports the following restrictions:</para>
        ///   <bulletList>
        ///     <bullet_item>Any Hazmat Prohibited—The results will not include roads where transporting any kind of hazardous material is prohibited. Availability: Select countries in North America and Europe</bullet_item><para/>
        ///     <bullet_item>Avoid Carpool Roads—The results will avoid roads that are designated exclusively for car pool (high-occupancy) vehicles. Availability: All countries</bullet_item><para/>
        ///     <bullet_item>Avoid Express Lanes—The results will avoid roads designated as express lanes. Availability: All countries</bullet_item><para/>
        ///     <bullet_item>Avoid Ferries—The results will avoid ferries. Availability: All countries</bullet_item><para/>
        ///     <bullet_item>Avoid Gates—The results will avoid roads where there are gates, such as keyed access or guard-controlled entryways.Availability: All countries</bullet_item><para/>
        ///     <bullet_item>Avoid Limited Access Roads—The results will avoid roads that are limited-access highways.Availability: All countries</bullet_item><para/>
        ///     <bullet_item>Avoid Private Roads—The results will avoid roads that are not publicly owned and maintained.Availability: All countries</bullet_item><para/>
        ///     <bullet_item>Avoid Roads Unsuitable for Pedestrians—The results will avoid roads that are unsuitable for pedestrians.Availability: All countries</bullet_item><para/>
        ///     <bullet_item>Avoid Stairways—The results will avoid all stairways on a pedestrian-suitable route.Availability: All countries</bullet_item><para/>
        ///     <bullet_item>Avoid Toll Roads—The results will avoid all toll roads for automobiles.Availability: All countries</bullet_item><para/>
        ///     <bullet_item>Avoid Toll Roads for Trucks—The results will avoid all toll roads for trucks.Availability: All countries</bullet_item><para/>
        ///     <bullet_item>Avoid Truck Restricted Roads—The results will avoid roads where trucks are not allowed, except when making deliveries.Availability: All countries</bullet_item><para/>
        ///     <bullet_item>Avoid Unpaved Roads—The results will avoid roads that are not paved (for example, dirt, gravel, and so on). Availability: All countries</bullet_item><para/>
        ///     <bullet_item>Axle Count Restriction—The results will not include roads where trucks with the specified number of axles are prohibited. The number of axles can be specified using the Number of Axles restriction parameter.Availability: Select countries in North America and Europe</bullet_item><para/>
        ///     <bullet_item>Driving a Bus—The results will not include roads where buses are prohibited. Using this restriction will also ensure that the results will honor one-way streets. Availability: All countries</bullet_item><para/>
        ///     <bullet_item>Driving a Taxi—The results will not include roads where taxis are prohibited. Using this restriction will also ensure that the results will honor one-way streets. Availability: All countries</bullet_item><para/>
        ///     <bullet_item>Driving a Truck—The results will not include roads where trucks are prohibited. Using this restriction will also ensure that the results will honor one-way streets. Availability: All countries</bullet_item><para/>
        ///     <bullet_item>Driving an Automobile—The results will not include roads where automobiles are prohibited. Using this restriction will also ensure that the results will honor one-way streets. Availability: All countries</bullet_item><para/>
        ///     <bullet_item>Driving an Emergency Vehicle—The results will not include roads where emergency vehicles are prohibited. Using this restriction will also ensure that the results will honor one-way streets.Availability: All countries</bullet_item><para/>
        ///     <bullet_item>Height Restriction—The results will not include roads where the vehicle height exceeds the maximum allowed height for the road. The vehicle height can be specified using the Vehicle Height (meters) restriction parameter. Availability: Select countries in North America and Europe</bullet_item><para/>
        ///     <bullet_item>Kingpin to Rear Axle Length Restriction—The results will not include roads where the vehicle length exceeds the maximum allowed kingpin to rear axle for all trucks on the road. The length between the vehicle kingpin and the rear axle can be specified using the Vehicle Kingpin to Rear Axle Length (meters) restriction parameter. Availability: Select countries in North America and Europe</bullet_item><para/>
        ///     <bullet_item>Length Restriction—The results will not include roads where the vehicle length exceeds the maximum allowed length for the road. The vehicle length can be specified using the Vehicle Length (meters) restriction parameter. Availability: Select countries in North America and Europe</bullet_item><para/>
        ///     <bullet_item>Preferred for Pedestrians—The results will use preferred routes suitable for pedestrian navigation. Availability: Select countries in North America and Europe</bullet_item><para/>
        ///     <bullet_item>Riding a Motorcycle—The results will not include roads where motorcycles are prohibited. Using this restriction will also ensure that the results will honor one-way streets.Availability: All countries</bullet_item><para/>
        ///     <bullet_item>Roads Under Construction Prohibited—The results will not include roads that are under construction.Availability: All countries</bullet_item><para/>
        ///     <bullet_item>Semi or Tractor with One or More Trailers Prohibited—The results will not include roads where semis or tractors with one or more trailers are prohibited. Availability: Select countries in North America and Europe</bullet_item><para/>
        ///     <bullet_item>Single Axle Vehicles Prohibited—The results will not include roads where vehicles with single axles are prohibited.Availability: Select countries in North America and Europe</bullet_item><para/>
        ///     <bullet_item>Tandem Axle Vehicles Prohibited—The results will not include roads where vehicles with tandem axles are prohibited.Availability: Select countries in North America and Europe</bullet_item><para/>
        ///     <bullet_item>Through Traffic Prohibited—The results will not include roads where through traffic (nonlocal) is prohibited.Availability: All countries</bullet_item><para/>
        ///     <bullet_item>Truck with Trailers Restriction—The results will not include roads where trucks with the specified number of trailers on the truck are prohibited. The number of trailers on the truck can be specified using the Number of Trailers on Truck restriction parameter.Availability: Select countries in North America and Europe</bullet_item><para/>
        ///     <bullet_item>Use Preferred Hazmat Routes—The results will prefer roads that are designated for transporting any kind of hazardous materials. Availability: Select countries in North America and Europe</bullet_item><para/>
        ///     <bullet_item>Use Preferred Truck Routes—The results will prefer roads that are designated as truck routes, such as the roads that are part of the national network as specified by the National Surface Transportation Assistance Act in the United States, or roads that are designated as truck routes by the state or province, or roads that are preferred by truckers when driving in an area.Availability: Select countries in North America and Europe</bullet_item><para/>
        ///     <bullet_item>Walking—The results will not include roads where pedestrians are prohibited.Availability: All countries</bullet_item><para/>
        ///     <bullet_item>Weight Restriction—The results will not include roads where the vehicle weight exceeds the maximum allowed weight for the road. The vehicle weight can be specified using the Vehicle Weight (kilograms) restriction parameter.Availability: Select countries in North America and Europe</bullet_item><para/>
        ///     <bullet_item>Weight per Axle Restriction—The results will not include roads where the vehicle weight per axle exceeds the maximum allowed weight per axle for the road. The vehicle weight per axle can be specified using the Vehicle Weight per Axle (kilograms) restriction parameter.Availability: Select countries in North America and Europe</bullet_item><para/>
        ///     <bullet_item>Width Restriction—The results will not include roads where the vehicle width exceeds the maximum allowed width for the road. The vehicle width can be specified using the Vehicle Width (meters) restriction parameter.Availability: Select countries in North America and Europe</bullet_item><para/>
        ///   </bulletList>
        /// </xdoc></para>
        /// <para><xdoc>
        ///   <para>指定在查找设施点和请求点之间的最佳路径时，工具将遵循哪些限制。</para>
        ///   <para>限制表示驾驶偏好或要求。在大多数情况下，限制会导致道路被禁止。例如，使用“避开收费公路”限制将导致仅当需要在收费公路上行驶以访问事件或设施时，路线才会包含收费公路。高度限制可以绕过任何低于车辆高度的间隙。如果您在车辆上携带腐蚀性材料，请使用任何危险品禁止限制可防止在标记为非法的道路上拖运材料。</para>
        ///   <para>
        ///     <para>某些限制需要指定附加值才能使用。此值必须与限制名称和用于该限制的特定参数相关联。如果这些限制的名称显示在“属性参数值”参数的“AttributeName”列中，则可以识别此类限制。应在 Attribute Parameter Values 参数中指定 ParameterValue 字段，以便在查找可穿越道路时正确使用限制。</para>
        ///   </para>
        ///   <para>
        ///     <para>某些限制仅在某些国家/地区受支持;它们的可用性在下面的列表中按地区说明。对于某个区域内可用性有限的限制，您可以通过查看网络分析覆盖范围的国家/地区列表部分中的表格来确定该限制在特定国家/地区是否可用。如果某个国家/地区的“物流属性”列中的值为“是”，则该国家/地区支持在该区域中选择可用性的限制。如果指定的限制名称在事件所在国家/地区不可用，则服务将忽略无效的限制。当限制使用属性参数值介于 0 和 1 之间时，该服务还会忽略限制（请参阅属性参数值参数）。当限制使用参数值大于 0 时，它禁止所有限制。</para>
        ///   </para>
        ///   <para>除非“出行模式”设置为“自定义”，否则将忽略为此参数提供的值。</para>
        ///   <para>该工具支持以下限制：</para>
        ///   <bulletList>
        ///     <bullet_item>禁止任何危险品 - 结果将不包括禁止运输任何种类危险材料的道路。可用性：北美和欧洲的部分国家/地区</bullet_item><para/>
        ///     <bullet_item>避免拼车道路 - 结果将避免专门用于拼车（高占用率）车辆的道路。可用性：所有国家/地区</bullet_item><para/>
        ///     <bullet_item>避开快速车道 - 结果将避开指定为快速车道的道路。可用性：所有国家/地区</bullet_item><para/>
        ///     <bullet_item>避免乘坐渡轮 - 结果将避免乘坐渡轮。可用性：所有国家/地区</bullet_item><para/>
        ///     <bullet_item>避开大门 - 结果将避开有大门的道路，例如带钥匙的入口或警卫控制的入口通道。可用性：所有国家/地区</bullet_item><para/>
        ///     <bullet_item>避免限制通行道路 - 结果将避开限制通行的高速公路道路。可用性：所有国家/地区</bullet_item><para/>
        ///     <bullet_item>避开私人道路 - 结果将避开非公有和维护的道路。可用性：所有国家/地区</bullet_item><para/>
        ///     <bullet_item>避开不适合行人居住的道路 - 结果将避开不适合行人通行的道路。可用性：所有国家/地区</bullet_item><para/>
        ///     <bullet_item>避免楼梯 - 结果将避开适合行人的路线上的所有楼梯。可用性：所有国家/地区</bullet_item><para/>
        ///     <bullet_item>避开收费公路 - 结果将避开所有汽车收费公路。可用性：所有国家/地区</bullet_item><para/>
        ///     <bullet_item>避开卡车的收费公路 - 结果将避开卡车的所有收费公路。可用性：所有国家/地区</bullet_item><para/>
        ///     <bullet_item>避开卡车限制道路 - 结果将避开不允许卡车通行的道路，但送货时除外。可用性：所有国家/地区</bullet_item><para/>
        ///     <bullet_item>避免未铺砌的道路 - 结果将避免未铺砌的道路（例如，泥土、砾石等）。可用性：所有国家/地区</bullet_item><para/>
        ///     <bullet_item>轴数限制 - 结果将不包括禁止具有指定轴数的卡车通行的道路。可以使用轴数限制参数指定轴数。可用性：北美和欧洲的部分国家/地区</bullet_item><para/>
        ///     <bullet_item>驾驶公交车 - 结果将不包括禁止公交车行驶的道路。使用此限制还将确保结果将遵循单行道。可用性：所有国家/地区</bullet_item><para/>
        ///     <bullet_item>驾驶出租车 - 结果将不包括禁止出租车通行的道路。使用此限制还将确保结果将遵循单行道。可用性：所有国家/地区</bullet_item><para/>
        ///     <bullet_item>驾驶卡车 - 结果将不包括禁止卡车通行的道路。使用此限制还将确保结果将遵循单行道。可用性：所有国家/地区</bullet_item><para/>
        ///     <bullet_item>驾驶汽车 - 结果将不包括禁止汽车通行的道路。使用此限制还将确保结果将遵循单行道。可用性：所有国家/地区</bullet_item><para/>
        ///     <bullet_item>驾驶紧急车辆 - 结果将不包括禁止紧急车辆通行的道路。使用此限制还将确保结果将遵循单行道。可用性：所有国家/地区</bullet_item><para/>
        ///     <bullet_item>高度限制—结果将不包括车辆高度超过道路允许的最大高度的道路。可以使用车辆高度（米）限制参数指定车辆高度。可用性：北美和欧洲的部分国家/地区</bullet_item><para/>
        ///     <bullet_item>主销到后轴长度限制 - 结果将不包括车辆长度超过道路上所有卡车允许的最大主销到后轴的道路。车辆主销和后轴之间的长度可以使用车辆主销到后轴长度（米）限制参数来指定。可用性：北美和欧洲的部分国家/地区</bullet_item><para/>
        ///     <bullet_item>长度限制 - 结果将不包括车辆长度超过道路允许的最大长度的道路。可以使用车辆长度（米）限制参数指定车辆长度。可用性：北美和欧洲的部分国家/地区</bullet_item><para/>
        ///     <bullet_item>行人首选—结果将使用适合行人导航的首选路径。可用性：北美和欧洲的部分国家/地区</bullet_item><para/>
        ///     <bullet_item>骑摩托车 - 结果不包括禁止摩托车通行的道路。使用此限制还将确保结果将遵循单行道。可用性：所有国家/地区</bullet_item><para/>
        ///     <bullet_item>禁止在建道路 - 结果将不包括在建道路。可用性：所有国家/地区</bullet_item><para/>
        ///     <bullet_item>禁止使用一辆或多辆拖车的半挂车或拖拉机 - 结果不包括禁止使用一辆或多辆拖车的半挂车或拖拉机的道路。可用性：北美和欧洲的部分国家/地区</bullet_item><para/>
        ///     <bullet_item>禁止单轴车辆 - 结果将不包括禁止单轴车辆通行的道路。可用性：北美和欧洲的部分国家/地区</bullet_item><para/>
        ///     <bullet_item>禁止双轴车辆 - 结果不包括禁止双轴车辆通行的道路。可用性：北美和欧洲的部分国家/地区</bullet_item><para/>
        ///     <bullet_item>禁止直通车 - 结果将不包括禁止直通车（非本地）的道路。可用性：所有国家/地区</bullet_item><para/>
        ///     <bullet_item>带拖车限制的卡车—结果将不包括禁止卡车上装有指定数量拖车的卡车通行的道路。可以使用卡车上的拖车数量限制参数指定卡车上的拖车数量。可用性：北美和欧洲的部分国家/地区</bullet_item><para/>
        ///     <bullet_item>使用首选危险品路线 - 结果将优先选择指定用于运输任何类型危险物料的道路。可用性：北美和欧洲的部分国家/地区</bullet_item><para/>
        ///     <bullet_item>使用首选卡车路径 - 结果将优先选择指定为卡车路径的道路，例如美国《国家地面交通援助法》规定的属于国家网络的道路，或由州或省指定为卡车路线的道路，或者卡车司机在某个区域行驶时首选的道路。可用性：北美和欧洲的部分国家/地区</bullet_item><para/>
        ///     <bullet_item>步行 - 结果将不包括禁止行人通行的道路。可用性：所有国家/地区</bullet_item><para/>
        ///     <bullet_item>重量限制 - 结果将不包括车辆重量超过道路允许最大重量的道路。可以使用车辆重量（千克）限制参数指定车辆重量。可用性：北美和欧洲的部分国家/地区</bullet_item><para/>
        ///     <bullet_item>每轴重量限制—结果将不包括车辆每轴重量超过道路每轴允许最大重量的道路。可以使用车辆每轴重量（千克）限制参数指定车辆每轴重量。可用性：北美和欧洲的部分国家/地区</bullet_item><para/>
        ///     <bullet_item>宽度限制—结果将不包括车辆宽度超过道路允许的最大宽度的道路。可以使用车辆宽度（米）限制参数指定车辆宽度。可用性：北美和欧洲的部分国家/地区</bullet_item><para/>
        ///   </bulletList>
        /// </xdoc></para>
        /// <para></para>
        /// </summary>
        [DisplayName("Restrictions")]
        [Description("")]
        [Option(OptionTypeEnum.optional)]
        public List<object> _Restrictions { get; set; } = null;


        /// <summary>
        /// <para>Attribute Parameter Values</para>
        /// <para><xdoc>
        ///   <para>Use this parameter to specify additional values required by an attribute or restriction, such as to specify whether the restriction prohibits, avoids, or prefers travel on restricted roads. If the restriction is meant to avoid or prefer roads, you can further specify the degree to which they are avoided or preferred using this parameter. For example, you can choose to never use toll roads, avoid them as much as possible, or prefer them.</para>
        ///   <para>The values you provide for this parameter are ignored unless Travel Mode is set to Custom.</para>
        ///   <para>If you specify the Attribute Parameter Values parameter from a feature class, the field names on the feature class must match the fields as follows:
        ///   <bulletList>
        ///     <bullet_item>AttributeName—The name of the restriction.  </bullet_item><para/>
        ///     <bullet_item>ParameterName—The name of the parameter associated with the restriction. A restriction can have one or more ParameterName field values based on its intended use.  </bullet_item><para/>
        ///     <bullet_item>ParameterValue—The value for ParameterName used by the tool when evaluating the restriction.  </bullet_item><para/>
        ///   </bulletList>
        ///   </para>
        ///   <para>The Attribute Parameter Values parameter is dependent on the Restrictions parameter. The ParameterValue field is applicable only if the restriction name is specified as the value for the Restrictions parameter.</para>
        ///   <para>In Attribute Parameter Values, each restriction (listed as AttributeName) has a ParameterName field value, Restriction Usage, that specifies whether the restriction prohibits, avoids, or prefers travel on the roads associated with the restriction as well as the degree to which the roads are avoided or preferred. The Restriction Usage ParameterName can be assigned any of the following string values or their equivalent numeric values listed in the parentheses:
        ///   <bulletList>
        ///     <bullet_item>PROHIBITED (-1)—Travel on the roads using the restriction is completely prohibited.  </bullet_item><para/>
        ///     <bullet_item>AVOID_HIGH (5)—It is highly unlikely the tool will include in the route the roads that are associated with the restriction.  </bullet_item><para/>
        ///     <bullet_item>AVOID_MEDIUM (2)—It is unlikely the tool will include in the route the roads that are associated with the restriction.  </bullet_item><para/>
        ///     <bullet_item>AVOID_LOW (1.3)—It is somewhat unlikely the tool will include in the route the roads that are associated with the restriction.  </bullet_item><para/>
        ///     <bullet_item>PREFER_LOW (0.8)—It is somewhat likely the tool will include in the route the roads that are associated with the restriction.  </bullet_item><para/>
        ///     <bullet_item>PREFER_MEDIUM (0.5)—It is likely the tool will include in the route the roads that are associated with the restriction.  </bullet_item><para/>
        ///     <bullet_item>PREFER_HIGH (0.2)—It is highly likely the tool will include in the route the roads that are associated with the restriction.  </bullet_item><para/>
        ///   </bulletList>
        ///   </para>
        ///   <para>In most cases, you can use the default value, PROHIBITED, as the Restriction Usage value if the restriction is dependent on a vehicle characteristic such as vehicle height. However, in some cases, the Restriction Usage value depends on your routing preferences. For example, the Avoid Toll Roads restriction has the default value of AVOID_MEDIUM for the Restriction Usage attribute. This means that when the restriction is used, the tool will try to route around toll roads when it can. AVOID_MEDIUM also indicates how important it is to avoid toll roads when finding the best route; it has a medium priority. Choosing AVOID_LOW puts lower importance on avoiding tolls; choosing AVOID_HIGH instead gives it a higher importance and thus makes it more acceptable for the service to generate longer routes to avoid tolls. Choosing PROHIBITED entirely disallows travel on toll roads, making it impossible for a route to travel on any portion of a toll road. Keep in mind that avoiding or prohibiting toll roads, and thus avoiding toll payments, is the objective for some. In contrast, others prefer to drive on toll roads, because avoiding traffic is more valuable to them than the money spent on tolls. In the latter case, choose PREFER_LOW, PREFER_MEDIUM, or PREFER_HIGH as the value for Restriction Usage. The higher the preference, the farther the tool will go out of its way to travel on the roads associated with the restriction.</para>
        /// </xdoc></para>
        /// <para><xdoc>
        ///   <para>使用此参数可指定属性或限制所需的其他值，例如指定限制是禁止、避免还是首选在受限道路上行驶。如果限制旨在避开或首选道路，则可以使用此参数进一步指定避开或首选道路的程度。例如，您可以选择从不使用收费公路、尽可能避开收费公路或更喜欢收费公路。</para>
        ///   <para>除非“出行模式”设置为“自定义”，否则将忽略为此参数提供的值。</para>
        /// <para>如果从要素类指定属性参数值参数，则要素类上的字段名称必须与字段匹配，如下所示：
        ///   <bulletList>
        ///     <bullet_item>AttributeName - 限制的名称。</bullet_item><para/>
        ///     <bullet_item>ParameterName - 与限制关联的参数的名称。根据限制的预期用途，限制可以具有一个或多个 ParameterName 字段值。 </bullet_item><para/>
        ///     <bullet_item>ParameterValue - 工具在评估限制时使用的 ParameterName 值。</bullet_item><para/>
        ///   </bulletList>
        ///   </para>
        ///   <para>“属性参数值”参数依赖于“限制”参数。仅当限制名称指定为 Restrictions 参数的值时，ParameterValue 字段才适用。</para>
        /// <para>在“属性参数值”中，每个限制（列为 AttributeName）都有一个 ParameterName 字段值“限制用法”，该值指定限制是禁止、避免还是首选在与限制相关的道路上行驶，以及避免或首选道路的程度。可以为 Restriction Usage ParameterName 分配以下任何字符串值或括号中列出的等效数值：
        ///   <bulletList>
        ///     <bullet_item>禁止 （-1） - 完全禁止在使用该限制的道路上行驶。</bullet_item><para/>
        ///     <bullet_item>AVOID_HIGH （5） - 该工具极不可能在路径中包含与限制关联的道路。</bullet_item><para/>
        ///     <bullet_item>AVOID_MEDIUM （2） - 该工具不太可能在路径中包含与限制关联的道路。</bullet_item><para/>
        ///     <bullet_item>AVOID_LOW （1.3） - 该工具不太可能在路径中包含与限制相关的道路。</bullet_item><para/>
        ///     <bullet_item>PREFER_LOW （0.8） - 该工具很可能会在路径中包含与限制关联的道路。</bullet_item><para/>
        ///     <bullet_item>PREFER_MEDIUM （0.5） - 该工具可能会在路径中包含与限制关联的道路。</bullet_item><para/>
        ///     <bullet_item>PREFER_HIGH （0.2） - 该工具极有可能在路径中包括与限制关联的道路。</bullet_item><para/>
        ///   </bulletList>
        ///   </para>
        ///   <para>在大多数情况下，如果限制取决于车辆特性（如车辆高度），则可以使用默认值 PROHIBITED 作为限制使用值。但是，在某些情况下，“限制使用”值取决于您的路由首选项。例如，“避免收费公路”限制的默认值为“限制使用情况”属性的默认值 AVOID_MEDIUM。这意味着，当使用限制时，该工具将尽可能尝试绕过收费公路。AVOID_MEDIUM还表明在寻找最佳路线时避开收费公路是多么重要;它具有中等优先级。选择AVOID_LOW对避免通行费的重视程度较低;相反，选择AVOID_HIGH会赋予它更高的重要性，从而使服务更容易接受生成更长的路线以避免通行费。选择“禁止”完全禁止在收费公路上行驶，使路线无法在收费公路的任何部分行驶。请记住，避免或禁止收费公路，从而避免通行费，是一些人的目标。相比之下，其他人更喜欢在收费公路上行驶，因为避开交通对他们来说比花在通行费上的钱更有价值。在后一种情况下，选择 PREFER_LOW、PREFER_MEDIUM 或 PREFER_HIGH 作为 Restriction Usage （限制使用情况） 的值。偏好越高，工具在与限制相关的道路上行驶的距离就越远。</para>
        /// </xdoc></para>
        /// <para></para>
        /// </summary>
        [DisplayName("Attribute Parameter Values")]
        [Description("")]
        [Option(OptionTypeEnum.optional)]
        public object _Attribute_Parameter_Values { get; set; } = null;


        /// <summary>
        /// <para>Allocation Line Shape</para>
        /// <para><xdoc>
        ///   <para>Specifies the type of line features that are output by the tool. The parameter accepts one of the following values:</para>
        ///   <bulletList>
        ///     <bullet_item>Straight Line—Straight lines between solution facilities and the demand points allocated to them are returned. This is the default. Drawing straight lines on a map helps you visualize how demand is allocated.</bullet_item><para/>
        ///     <bullet_item>None—A table containing data about the shortest paths between solution facilities and the demand points allocated to them is returned but lines are not.</bullet_item><para/>
        ///   </bulletList>
        ///   <para>No matter which value you choose for the Allocation Line Shape parameter, the shortest route is always determined by minimizing the travel time or the travel distance, never using the straight-line distance between demand points and facilities. That is, this parameter only changes the output line shapes; it doesn't change the measurement method.</para>
        /// </xdoc></para>
        /// <para><xdoc>
        ///   <para>指定工具输出的线要素类型。该参数接受以下值之一：</para>
        ///   <bulletList>
        ///     <bullet_item></bullet_item><para/>
        ///     <bullet_item></bullet_item><para/>
        ///   </bulletList>
        ///   <para>无论为分配线形状参数选择哪个值，最短路径始终通过最小化行驶时间或行驶距离来确定，从不使用需求点和设施点之间的直线距离。也就是说，此参数仅更改输出线形状;它不会改变测量方法。</para>
        /// </xdoc></para>
        /// <para></para>
        /// </summary>
        [DisplayName("Allocation Line Shape")]
        [Description("")]
        [Option(OptionTypeEnum.optional)]
        public _Allocation_Line_Shape_value _Allocation_Line_Shape { get; set; } = _Allocation_Line_Shape_value._Straight_Line;

        public enum _Allocation_Line_Shape_value
        {
            /// <summary>
            /// <para>None</para>
            /// <para>None—A table containing data about the shortest paths between solution facilities and the demand points allocated to them is returned but lines are not.</para>
            /// <para></para>
            /// </summary>
            [Description("None")]
            [GPEnumValue("None")]
            _None,

            /// <summary>
            /// <para>Straight Line</para>
            /// <para>Straight Line—Straight lines between solution facilities and the demand points allocated to them are returned. This is the default. Drawing straight lines on a map helps you visualize how demand is allocated.</para>
            /// <para></para>
            /// </summary>
            [Description("Straight Line")]
            [GPEnumValue("Straight Line")]
            _Straight_Line,

        }

        /// <summary>
        /// <para>Travel Mode</para>
        /// <para><xdoc>
        ///   <para>The mode of transportation to model in the analysis. Travel modes are managed in ArcGIS Online and can be configured by the administrator of your organization to reflect your organization's workflows. You need to specify the name of a travel mode that is supported by your organization.</para>
        ///   <para>To get a list of supported travel mode names, use the same GIS server connection you used to access this tool, and run the GetTravelModes tool in the Utilities toolbox. The GetTravelModes tool adds the Supported Travel Modes table to the application. Any value in the Travel Mode Name field from the Supported Travel Modes table can be specified as input. You can also specify the value from the Travel Mode Settings field as input. This reduces the tool execution time because the tool does not have to find the settings based on the travel mode name.</para>
        ///   <para>The default value, Custom, allows you to configure your own travel mode using the custom travel mode parameters (UTurn at Junctions, Use Hierarchy, Restrictions, Attribute Parameter Values, and Impedance). The default values of the custom travel mode parameters model traveling by car. You can also choose Custom and set the custom travel mode parameters listed above to model a pedestrian with a fast walking speed or a truck with a given height, weight, and cargo of certain hazardous materials. You can try different settings to get the analysis results you want. Once you have identified the analysis settings, work with your organization's administrator and save these settings as part of a new or existing travel mode so that everyone in your organization can run the analysis with the same settings.</para>
        ///   <para>When you choose Custom, the values you set for the custom travel mode parameters are included in the analysis. Specifying another travel mode, as defined by your organization, causes any values you set for the custom travel mode parameters to be ignored; the tool overrides them with values from your specified travel mode.</para>
        /// </xdoc></para>
        /// <para><xdoc>
        ///   <para>在分析中建模的运输方式。出行模式在 ArcGIS Online 中进行管理，可由组织管理员进行配置以反映组织的工作流。您需要指定组织支持的出行模式的名称。</para>
        ///   <para>要获取支持的出行模式名称列表，请使用用于访问此工具的相同 GIS 服务器连接，然后运行实用工具箱中的 GetTravelModes 工具。GetTravelModes 工具将“支持的出行模式”表添加到应用程序中。“支持的出行模式”（Supported Travel Modes） 表格中“出行模式名称”（Travel Mode Name） 字段中的任何值都可以指定为输入。您还可以将“出行模式设置”字段中的值指定为输入。这减少了工具的执行时间，因为工具不必根据出行模式名称查找设置。</para>
        ///   <para>默认值 Custom 允许您使用自定义出行模式参数（“交汇点处的 UTurn”、“使用层次结构”、“限制”、“属性参数值”和“阻抗”）配置自己的出行模式。自定义出行模式参数模型的默认值为汽车出行。您还可以选择自定义并设置上面列出的自定义出行模式参数，以对步行速度较快的行人或具有给定高度、重量和某些危险材料货物的卡车进行建模。您可以尝试不同的设置来获得所需的分析结果。确定分析设置后，请与组织的管理员合作，并将这些设置另存为新的或现有的出行模式的一部分，以便组织中的每个人都可以使用相同的设置运行分析。</para>
        ///   <para>选择“自定义”（Custom） 时，为自定义出行模式参数设置的值将包含在分析中。指定组织定义的其他出行模式会导致忽略您为自定义出行模式参数设置的任何值;该工具将使用指定出行模式中的值覆盖它们。</para>
        /// </xdoc></para>
        /// <para></para>
        /// </summary>
        [DisplayName("Travel Mode")]
        [Description("")]
        [Option(OptionTypeEnum.optional)]
        public object _Travel_Mode { get; set; } = null;


        /// <summary>
        /// <para>Impedance</para>
        /// <para><xdoc>
        ///   <para>Specifies the impedance, which is a value that represents the effort or cost of traveling along road segments or on other parts of the transportation network.</para>
        ///   <para>Travel time is an impedance: a car may take 1 minute to travel a mile along an empty road. Travel times can vary by travel mode—a pedestrian may take more than 20 minutes to walk the same mile, so it is important to choose the right impedance for the travel mode you are modeling.</para>
        ///   <para>Travel distance can also be an impedance; the length of a road in kilometers can be thought of as impedance. Travel distance in this sense is the same for all modes—a kilometer for a pedestrian is also a kilometer for a car. (What may change is the pathways on which the different modes are allowed to travel, which affects distance between points, and this is modeled by travel mode settings.)</para>
        ///   <para>The value you provide for this parameter is ignored unless Travel Mode is set to Custom, which is the default value.</para>
        ///   <bulletList>
        ///     <bullet_item>Travel Time—Historical and live traffic data is used. This option is good for modeling the time it takes automobiles to travel along roads at a specific time of day using live traffic speed data where available. When using TravelTime, you can optionally set the TravelTime::Vehicle Maximum Speed (km/h) attribute parameter to specify the physical limitation of the speed the vehicle is capable of traveling.</bullet_item><para/>
        ///     <bullet_item>Minutes—Live traffic data is not used, but historical average speeds for automobiles data is used.</bullet_item><para/>
        ///     <bullet_item>Truck Travel Time—Historical and live traffic data is used, but the speed is capped at the posted truck speed limit. This is good for modeling the time it takes for the trucks to travel along roads at a specific time. When using TruckTravelTime, you can optionally set the TruckTravelTime::Vehicle Maximum Speed (km/h) attribute parameter to specify the physical limitation of the speed the truck is capable of traveling.</bullet_item><para/>
        ///     <bullet_item>Truck Minutes—Live traffic data is not used, but the smaller of the historical average speeds for automobiles and the posted speed limits for trucks is used.</bullet_item><para/>
        ///     <bullet_item>Walk Time—The default is a speed of 5 km/hr on all roads and paths, but this can be configured through the WalkTime::Walking Speed (km/h) attribute parameter.</bullet_item><para/>
        ///     <bullet_item>Miles—Length measurements along roads are stored in miles and can be used for performing analysis based on shortest distance.</bullet_item><para/>
        ///     <bullet_item>Kilometers—Length measurements along roads are stored in kilometers and can be used for performing analysis based on shortest distance.</bullet_item><para/>
        ///     <bullet_item>Time At One Kilometer Per Hour—The default is a speed of 1 km/hr on all roads and paths. The speed cannot be changed using any attribute parameter.</bullet_item><para/>
        ///     <bullet_item>Drive Time—Models travel times for a car. These travel times are dynamic and fluctuate according to traffic flows in areas where traffic data is available. This is the default value.</bullet_item><para/>
        ///     <bullet_item>Truck Time—Models travel times for a truck. These travel times are static for each road and don't fluctuate with traffic.</bullet_item><para/>
        ///     <bullet_item>Walk Time—Models travel times for a pedestrian.</bullet_item><para/>
        ///     <bullet_item>Travel Distance—Stores length measurements along roads and paths. To model walk distance, choose this option and ensure Walking is set in the Restriction parameter. Similarly, to model drive or truck distance, choose Travel Distance here and set the appropriate restrictions so your vehicle travels only on roads where it is permitted to do so.</bullet_item><para/>
        ///   </bulletList>
        ///   <para>If you choose a time-based impedance, such as TravelTime, TruckTravelTime, Minutes, TruckMinutes, or WalkTime, the Measurement Units parameter must be set to a time-based value. If you choose a distance-based impedance, such as Miles or Kilometers, Measurement Units must be distance based.</para>
        ///   <para>Drive Time, Truck Time, Walk Time, and Travel Distance impedance values are no longer supported and will be removed in a future release. If you use one of these values, the tool uses the value of the Time Impedance parameter for time-based values and the Distance Impedance parameter for distance-based values.</para>
        /// </xdoc></para>
        /// <para><xdoc>
        ///   <para>指定阻抗，该值表示沿路段或运输网络其他部分行驶的工作量或成本。</para>
        ///   <para>行驶时间是一种阻抗：一辆汽车在空旷的道路上行驶一英里可能需要 1 分钟。行驶时间可能因出行模式而异 - 行人走完同一英里可能需要 20 多分钟，因此为正在建模的出行模式选择正确的阻抗非常重要。</para>
        ///   <para>行程距离也可以是阻抗;以公里为单位的道路长度可以被认为是阻抗。从这个意义上说，所有模式的行驶距离都是相同的——行人的一公里也是汽车的一公里。（可能会改变的是允许不同模式行进的路径，这会影响点之间的距离，这是通过行进模式设置建模的。</para>
        ///   <para>除非将“出行模式”设置为“自定义”（默认值），否则将忽略为此参数提供的值。</para>
        ///   <bulletList>
        ///     <bullet_item>行驶时间 - 使用历史和实时交通数据。此选项适用于使用实时交通速度数据（如果可用）对汽车在一天中的特定时间沿道路行驶所需的时间进行建模。使用 TravelTime 时，您可以选择设置 TravelTime：：Vehicle Maximum Speed （km/h） 属性参数，以指定车辆能够行驶的速度的物理限制。</bullet_item><para/>
        ///     <bullet_item>分钟 - 不使用实时交通数据，但使用汽车数据的历史平均速度。</bullet_item><para/>
        ///     <bullet_item>卡车行驶时间 - 使用历史和实时交通数据，但速度上限为公布的卡车速度限制。这有利于对卡车在特定时间沿道路行驶所需的时间进行建模。使用 TruckTravelTime 时，您可以选择设置 TruckTravelTime：：Vehicle Maximum Speed （km/h） 属性参数，以指定卡车能够行驶的速度的物理限制。</bullet_item><para/>
        ///     <bullet_item>卡车分钟数 - 不使用实时交通数据，但使用汽车的历史平均速度和卡车公布的速度限制中的较小者。</bullet_item><para/>
        ///     <bullet_item>步行时间 - 所有道路和路径上的默认速度为 5 公里/小时，但可以通过步行时间：：步行速度（公里/小时）属性参数进行配置。</bullet_item><para/>
        ///     <bullet_item>英里 - 沿道路的长度测量值以英里为单位存储，可用于执行基于最短距离的分析。</bullet_item><para/>
        ///     <bullet_item>千米 - 沿道路的长度测量值以千米为单位存储，可用于执行基于最短距离的分析。</bullet_item><para/>
        ///     <bullet_item>一小时时间 - 所有道路和路径上的默认速度为 1 公里/小时。不能使用任何属性参数更改速度。</bullet_item><para/>
        ///     <bullet_item>行驶时间 - 对汽车的行驶时间进行建模。这些旅行时间是动态的，并根据交通数据可用地区的交通流量而波动。这是默认值。</bullet_item><para/>
        ///     <bullet_item>卡车时间 - 对卡车的行驶时间进行建模。这些行驶时间对于每条道路都是静态的，不会随着交通流量而波动。</bullet_item><para/>
        ///     <bullet_item>步行时间 - 对行人的行进时间进行建模。</bullet_item><para/>
        ///     <bullet_item>行驶距离 - 存储沿道路和路径的长度测量值。要对步行距离进行建模，请选择此选项，并确保在 Restriction 参数中设置了步行。同样，要对驾驶或卡车距离进行建模，请在此处选择行驶距离并设置适当的限制，以便您的车辆仅在允许行驶的道路上行驶。</bullet_item><para/>
        ///   </bulletList>
        ///   <para>如果选择基于时间的阻抗，例如 TravelTime、TruckTravelTime、Minutes、TruckMinutes 或 WalkTime，则必须将测量单位参数设置为基于时间的值。如果选择基于距离的阻抗（如英里或公里），则测量单位必须基于距离。</para>
        ///   <para>“行驶时间”、“卡车时间”、“步行时间”和“行驶距离阻抗”值不再受支持，并将在将来的版本中删除。如果使用其中一个值，则该工具将使用时间阻抗参数的值来表示基于时间的值，将距离阻抗参数的值用于基于距离的值。</para>
        /// </xdoc></para>
        /// <para></para>
        /// </summary>
        [DisplayName("Impedance")]
        [Description("")]
        [Option(OptionTypeEnum.optional)]
        public _Impedance_value _Impedance { get; set; } = _Impedance_value._Drive_Time;

        public enum _Impedance_value
        {
            /// <summary>
            /// <para>Drive Time</para>
            /// <para>Drive Time—Models travel times for a car. These travel times are dynamic and fluctuate according to traffic flows in areas where traffic data is available. This is the default value.</para>
            /// <para>行驶时间 - 对汽车的行驶时间进行建模。这些旅行时间是动态的，并根据交通数据可用地区的交通流量而波动。这是默认值。</para>
            /// </summary>
            [Description("Drive Time")]
            [GPEnumValue("Drive Time")]
            _Drive_Time,

            /// <summary>
            /// <para>Truck Time</para>
            /// <para>Truck Time—Models travel times for a truck. These travel times are static for each road and don't fluctuate with traffic.</para>
            /// <para>卡车时间 - 对卡车的行驶时间进行建模。这些行驶时间对于每条道路都是静态的，不会随着交通流量而波动。</para>
            /// </summary>
            [Description("Truck Time")]
            [GPEnumValue("Truck Time")]
            _Truck_Time,

            /// <summary>
            /// <para>Walk Time</para>
            /// <para>Walk Time—The default is a speed of 5 km/hr on all roads and paths, but this can be configured through the WalkTime::Walking Speed (km/h) attribute parameter.</para>
            /// <para>步行时间 - 所有道路和路径上的默认速度为 5 公里/小时，但可以通过步行时间：：步行速度（公里/小时）属性参数进行配置。</para>
            /// </summary>
            [Description("Walk Time")]
            [GPEnumValue("Walk Time")]
            _Walk_Time,

            /// <summary>
            /// <para>Travel Distance</para>
            /// <para>Travel Distance—Stores length measurements along roads and paths. To model walk distance, choose this option and ensure Walking is set in the Restriction parameter. Similarly, to model drive or truck distance, choose Travel Distance here and set the appropriate restrictions so your vehicle travels only on roads where it is permitted to do so.</para>
            /// <para>行驶距离 - 存储沿道路和路径的长度测量值。要对步行距离进行建模，请选择此选项，并确保在 Restriction 参数中设置了步行。同样，要对驾驶或卡车距离进行建模，请在此处选择行驶距离并设置适当的限制，以便您的车辆仅在允许行驶的道路上行驶。</para>
            /// </summary>
            [Description("Travel Distance")]
            [GPEnumValue("Travel Distance")]
            _Travel_Distance,

            /// <summary>
            /// <para>Minutes</para>
            /// <para>Minutes—Live traffic data is not used, but historical average speeds for automobiles data is used.</para>
            /// <para>分钟 - 不使用实时交通数据，但使用汽车数据的历史平均速度。</para>
            /// </summary>
            [Description("Minutes")]
            [GPEnumValue("Minutes")]
            _Minutes,

            /// <summary>
            /// <para>Travel Time</para>
            /// <para>Travel Time—Historical and live traffic data is used. This option is good for modeling the time it takes automobiles to travel along roads at a specific time of day using live traffic speed data where available. When using TravelTime, you can optionally set the TravelTime::Vehicle Maximum Speed (km/h) attribute parameter to specify the physical limitation of the speed the vehicle is capable of traveling.</para>
            /// <para>行驶时间 - 使用历史和实时交通数据。此选项适用于使用实时交通速度数据（如果可用）对汽车在一天中的特定时间沿道路行驶所需的时间进行建模。使用 TravelTime 时，您可以选择设置 TravelTime：：Vehicle Maximum Speed （km/h） 属性参数，以指定车辆能够行驶的速度的物理限制。</para>
            /// </summary>
            [Description("Travel Time")]
            [GPEnumValue("TravelTime")]
            _TravelTime,

            /// <summary>
            /// <para>Time At One Kilometer Per Hour</para>
            /// <para>Time At One Kilometer Per Hour—The default is a speed of 1 km/hr on all roads and paths. The speed cannot be changed using any attribute parameter.</para>
            /// <para>一小时时间 - 所有道路和路径上的默认速度为 1 公里/小时。不能使用任何属性参数更改速度。</para>
            /// </summary>
            [Description("Time At One Kilometer Per Hour")]
            [GPEnumValue("TimeAt1KPH")]
            _TimeAt1KPH,

            /// <summary>
            /// <para>Walk Time</para>
            /// <para>Walk Time—The default is a speed of 5 km/hr on all roads and paths, but this can be configured through the WalkTime::Walking Speed (km/h) attribute parameter.</para>
            /// <para>步行时间 - 所有道路和路径上的默认速度为 5 公里/小时，但可以通过步行时间：：步行速度（公里/小时）属性参数进行配置。</para>
            /// </summary>
            [Description("Walk Time")]
            [GPEnumValue("WalkTime")]
            _WalkTime,

            /// <summary>
            /// <para>Truck Minutes</para>
            /// <para>Truck Minutes—Live traffic data is not used, but the smaller of the historical average speeds for automobiles and the posted speed limits for trucks is used.</para>
            /// <para>卡车分钟数 - 不使用实时交通数据，但使用汽车的历史平均速度和卡车公布的速度限制中的较小者。</para>
            /// </summary>
            [Description("Truck Minutes")]
            [GPEnumValue("TruckMinutes")]
            _TruckMinutes,

            /// <summary>
            /// <para>Truck Travel Time</para>
            /// <para>Truck Travel Time—Historical and live traffic data is used, but the speed is capped at the posted truck speed limit. This is good for modeling the time it takes for the trucks to travel along roads at a specific time. When using TruckTravelTime, you can optionally set the TruckTravelTime::Vehicle Maximum Speed (km/h) attribute parameter to specify the physical limitation of the speed the truck is capable of traveling.</para>
            /// <para>卡车行驶时间 - 使用历史和实时交通数据，但速度上限为公布的卡车速度限制。这有利于对卡车在特定时间沿道路行驶所需的时间进行建模。使用 TruckTravelTime 时，您可以选择设置 TruckTravelTime：：Vehicle Maximum Speed （km/h） 属性参数，以指定卡车能够行驶的速度的物理限制。</para>
            /// </summary>
            [Description("Truck Travel Time")]
            [GPEnumValue("TruckTravelTime")]
            _TruckTravelTime,

            /// <summary>
            /// <para>Miles</para>
            /// <para>Miles—Length measurements along roads are stored in miles and can be used for performing analysis based on shortest distance.</para>
            /// <para>英里 - 沿道路的长度测量值以英里为单位存储，可用于执行基于最短距离的分析。</para>
            /// </summary>
            [Description("Miles")]
            [GPEnumValue("Miles")]
            _Miles,

            /// <summary>
            /// <para>Kilometers</para>
            /// <para>Kilometers—Length measurements along roads are stored in kilometers and can be used for performing analysis based on shortest distance.</para>
            /// <para>千米 - 沿道路的长度测量值以千米为单位存储，可用于执行基于最短距离的分析。</para>
            /// </summary>
            [Description("Kilometers")]
            [GPEnumValue("Kilometers")]
            _Kilometers,

        }

        /// <summary>
        /// <para>Save Output Network Analysis Layer</para>
        /// <para><xdoc>
        ///   <para>Specifies whether the analysis settings will be saved as a network analysis layer file. You cannot directly work with this file even when you open the file in an ArcGIS Desktop application such as ArcMap. It is meant to be sent to Esri Technical Support to diagnose the quality of results returned from the tool.</para>
        ///   <para>
        ///     <bulletList>
        ///       <bullet_item>Checked (True in Python)—The output will be saved as a network analysis layer file. The file will be downloaded to a temporary directory on your machine. In ArcGIS Pro, the location of the downloaded file can be determined by viewing the value for the Output Network Analysis Layer parameter in the entry corresponding to the tool execution in the geoprocessing history of your project. In ArcMap, the location of the file can be determined by accessing the Copy Location option in the shortcut menu on the Output Network Analysis Layer parameter in the entry corresponding to the tool execution in the Geoprocessing Results window.</bullet_item><para/>
        ///       <bullet_item>Unchecked (False in Python)—The output will not be saved as a network analysis layer file. This is the default.</bullet_item><para/>
        ///     </bulletList>
        ///   </para>
        /// </xdoc></para>
        /// <para><xdoc>
        ///   <para>指定是否将分析设置另存为网络分析图层文件。即使在 ArcGIS Desktop 应用程序（例如 ArcMap）中打开文件，也无法直接使用此文件。它旨在发送给 Esri 技术支持，以诊断从该工具返回的结果的质量。</para>
        ///   <para>
        ///     <bulletList>
        ///       <bullet_item>选中（在 Python 中为 True）—输出将另存为网络分析图层文件。该文件将下载到计算机上的临时目录中。在 ArcGIS Pro 中，可以通过查看工程地理处理历史记录中与工具执行相对应的条目中的输出网络分析图层参数的值来确定下载文件的位置。在 ArcMap 中，可以通过访问与地理处理结果窗口中的工具执行相对应的条目中输出网络分析图层参数的快捷菜单中的复制位置选项来确定文件的位置。</bullet_item><para/>
        ///       <bullet_item>未选中（Python 中为 False）—输出不会另存为网络分析图层文件。这是默认设置。</bullet_item><para/>
        ///     </bulletList>
        ///   </para>
        /// </xdoc></para>
        /// <para></para>
        /// </summary>
        [DisplayName("Save Output Network Analysis Layer")]
        [Description("")]
        [Option(OptionTypeEnum.optional)]
        public object _Save_Output_Network_Analysis_Layer { get; set; } = null;


        /// <summary>
        /// <para>Overrides</para>
        /// <para><xdoc>
        ///   <para>Additional settings that can influence the behavior of the solver when finding solutions for the network analysis problems.</para>
        ///   <para>The value for this parameter must be specified in JavaScript Object Notation (JSON). For example, a valid value is of the following form: {"overrideSetting1" : "value1", "overrideSetting2" : "value2"}. The override setting name is always enclosed in double quotation marks. The values can be a number, Boolean, or string.</para>
        ///   <para>The default value for this parameter is no value, which indicates not to override any solver settings.</para>
        ///   <para>Overrides are advanced settings that should be used only after careful analysis of the results obtained before and after applying the settings. For a list of supported override settings for each solver and their acceptable values, contact Esri Technical Support.</para>
        /// </xdoc></para>
        /// <para><xdoc>
        ///   <para>在寻找网络分析问题的解决方案时可能影响求解器行为的其他设置。</para>
        ///   <para>此参数的值必须在 JavaScript 对象表示法 （JSON） 中指定。例如，有效值的格式如下：{“overrideSetting1” ： “value1”， “overrideSetting2” ： “value2”}。替代设置名称始终用双引号括起来。这些值可以是数字、布尔值或字符串。</para>
        ///   <para>此参数的默认值为 no value，表示不覆盖任何求解器设置。</para>
        ///   <para>替代是高级设置，只有在仔细分析应用设置之前和之后获得的结果后，才应使用。有关每个求解器支持的覆盖设置及其可接受值的列表，请联系 Esri 技术支持。</para>
        /// </xdoc></para>
        /// <para></para>
        /// </summary>
        [DisplayName("Overrides")]
        [Description("")]
        [Option(OptionTypeEnum.optional)]
        public object _Overrides { get; set; } = null;


        /// <summary>
        /// <para>Time Impedance</para>
        /// <para>If the impedance for the travel mode, as specified using the Impedance parameter, is time based, the values for the Time Impedance and Impedance parameters must be identical. Otherwise, the service will return an error.</para>
        /// <para>如果使用阻抗参数指定的行驶模式的阻抗是基于时间的，则时间阻抗和阻抗参数的值必须相同。否则，服务将返回错误。</para>
        /// <para></para>
        /// </summary>
        [DisplayName("Time Impedance")]
        [Description("")]
        [Option(OptionTypeEnum.optional)]
        public _Time_Impedance_value _Time_Impedance { get; set; } = _Time_Impedance_value._TravelTime;

        public enum _Time_Impedance_value
        {
            /// <summary>
            /// <para>Minutes</para>
            /// <para></para>
            /// <para></para>
            /// </summary>
            [Description("Minutes")]
            [GPEnumValue("Minutes")]
            _Minutes,

            /// <summary>
            /// <para>Travel Time</para>
            /// <para></para>
            /// <para></para>
            /// </summary>
            [Description("Travel Time")]
            [GPEnumValue("TravelTime")]
            _TravelTime,

            /// <summary>
            /// <para>Time At One Kilometer Per Hour</para>
            /// <para></para>
            /// <para></para>
            /// </summary>
            [Description("Time At One Kilometer Per Hour")]
            [GPEnumValue("TimeAt1KPH")]
            _TimeAt1KPH,

            /// <summary>
            /// <para>Walk Time</para>
            /// <para></para>
            /// <para></para>
            /// </summary>
            [Description("Walk Time")]
            [GPEnumValue("WalkTime")]
            _WalkTime,

            /// <summary>
            /// <para>Truck Minutes</para>
            /// <para></para>
            /// <para></para>
            /// </summary>
            [Description("Truck Minutes")]
            [GPEnumValue("TruckMinutes")]
            _TruckMinutes,

            /// <summary>
            /// <para>Truck Travel Time</para>
            /// <para></para>
            /// <para></para>
            /// </summary>
            [Description("Truck Travel Time")]
            [GPEnumValue("TruckTravelTime")]
            _TruckTravelTime,

        }

        /// <summary>
        /// <para>Distance Impedance</para>
        /// <para>If the impedance for the travel mode, as specified using the Impedance parameter, is distance based, the values for the Distance Impedance and Impedance parameters must be identical. Otherwise, the service will return an error.</para>
        /// <para>如果使用阻抗参数指定的行驶模式的阻抗是基于距离的，则距离阻抗和阻抗参数的值必须相同。否则，服务将返回错误。</para>
        /// <para></para>
        /// </summary>
        [DisplayName("Distance Impedance")]
        [Description("")]
        [Option(OptionTypeEnum.optional)]
        public _Distance_Impedance_value _Distance_Impedance { get; set; } = _Distance_Impedance_value._Kilometers;

        public enum _Distance_Impedance_value
        {
            /// <summary>
            /// <para>Miles</para>
            /// <para></para>
            /// <para></para>
            /// </summary>
            [Description("Miles")]
            [GPEnumValue("Miles")]
            _Miles,

            /// <summary>
            /// <para>Kilometers</para>
            /// <para></para>
            /// <para></para>
            /// </summary>
            [Description("Kilometers")]
            [GPEnumValue("Kilometers")]
            _Kilometers,

        }

        /// <summary>
        /// <para>Output Format</para>
        /// <para><xdoc>
        ///   <para>Specifies the format in which the output features will be created.</para>
        ///   <bulletList>
        ///     <bullet_item>Feature Set—The output features will be returned as feature classes and tables. This is the default.</bullet_item><para/>
        ///     <bullet_item>JSON File—The output features will be returned as a compressed file containing the JSON representation of the outputs. When this option is specified, the output is a single file (with a .zip extension) that contains one or more JSON files (with a .json extension) for each of the outputs created by the service.</bullet_item><para/>
        ///     <bullet_item>GeoJSON File—The output features will be returned as a compressed file containing the GeoJSON representation of the outputs. When this option is specified, the output is a single file (with a .zip extension) that contains one or more GeoJSON files (with a .geojson extension) for each of the outputs created by the service.</bullet_item><para/>
        ///   </bulletList>
        ///   <para>When a file-based output format, such as JSON File or GeoJSON File, is specified, no outputs will be added to the display because the application, such as ArcMap or ArcGIS Pro, cannot draw the contents of the result file. Instead, the result file is downloaded to a temporary directory on your machine. In ArcGIS Pro, the location of the downloaded file can be determined by viewing the value for the Output Result File parameter in the entry corresponding to the tool execution in the geoprocessing history of your project. In ArcMap, the location of the file can be determined by accessing the Copy Location option in the shortcut menu on the Output Result File parameter in the entry corresponding to the tool execution in the Geoprocessing Results window.</para>
        /// </xdoc></para>
        /// <para><xdoc>
        ///   <para>指定用于创建输出要素的格式。</para>
        ///   <bulletList>
        ///     <bullet_item>要素集 - 输出要素将作为要素类和表返回。这是默认设置。</bullet_item><para/>
        ///     <bullet_item>JSON 文件—输出要素将作为包含输出的 JSON 表示的压缩文件返回。指定此选项时，输出是一个文件（扩展名为 .zip），其中包含一个或多个 JSON 文件（扩展名为 .json），用于服务创建的每个输出。</bullet_item><para/>
        ///     <bullet_item>GeoJSON 文件 - 输出要素将作为包含输出的 GeoJSON 表示的压缩文件返回。指定此选项后，输出为单个文件（扩展名为 .zip），其中包含一个或多个 GeoJSON 文件（扩展名为 .geojson），用于服务创建的每个输出。</bullet_item><para/>
        ///   </bulletList>
        ///   <para>如果指定了基于文件的输出格式（例如 JSON 文件或 GeoJSON 文件），则不会将任何输出添加到显示中，因为应用程序（例如 ArcMap 或 ArcGIS Pro）无法绘制结果文件的内容。相反，结果文件将下载到计算机上的临时目录中。在 ArcGIS Pro 中，可以通过查看工程地理处理历史记录中与工具执行相对应的条目中的输出结果文件参数值来确定下载文件的位置。在 ArcMap 中，可以通过访问与地理处理结果窗口中的工具执行相对应的条目中输出结果文件参数快捷菜单中的复制位置选项来确定文件的位置。</para>
        /// </xdoc></para>
        /// <para></para>
        /// </summary>
        [DisplayName("Output Format")]
        [Description("")]
        [Option(OptionTypeEnum.optional)]
        public _Output_Format_value _Output_Format { get; set; } = _Output_Format_value._Feature_Set;

        public enum _Output_Format_value
        {
            /// <summary>
            /// <para>Feature Set</para>
            /// <para>Feature Set—The output features will be returned as feature classes and tables. This is the default.</para>
            /// <para>要素集 - 输出要素将作为要素类和表返回。这是默认设置。</para>
            /// </summary>
            [Description("Feature Set")]
            [GPEnumValue("Feature Set")]
            _Feature_Set,

            /// <summary>
            /// <para>JSON File</para>
            /// <para>JSON File—The output features will be returned as a compressed file containing the JSON representation of the outputs. When this option is specified, the output is a single file (with a .zip extension) that contains one or more JSON files (with a .json extension) for each of the outputs created by the service.</para>
            /// <para>JSON 文件—输出要素将作为包含输出的 JSON 表示的压缩文件返回。指定此选项时，输出是一个文件（扩展名为 .zip），其中包含一个或多个 JSON 文件（扩展名为 .json），用于服务创建的每个输出。</para>
            /// </summary>
            [Description("JSON File")]
            [GPEnumValue("JSON File")]
            _JSON_File,

            /// <summary>
            /// <para>GeoJSON File</para>
            /// <para>GeoJSON File—The output features will be returned as a compressed file containing the GeoJSON representation of the outputs. When this option is specified, the output is a single file (with a .zip extension) that contains one or more GeoJSON files (with a .geojson extension) for each of the outputs created by the service.</para>
            /// <para>GeoJSON 文件 - 输出要素将作为包含输出的 GeoJSON 表示的压缩文件返回。指定此选项后，输出为单个文件（扩展名为 .zip），其中包含一个或多个 GeoJSON 文件（扩展名为 .geojson），用于服务创建的每个输出。</para>
            /// </summary>
            [Description("GeoJSON File")]
            [GPEnumValue("GeoJSON File")]
            _GeoJSON_File,

        }

        /// <summary>
        /// <para>Ignore Invalid Locations</para>
        /// <para><xdoc>
        ///   <para>Specifies whether invalid input locations will be ignored.</para>
        ///   <bulletList>
        ///     <bullet_item>Checked—Network locations that are unlocated will be ignored and the analysis will run using valid network locations only. The analysis will also continue if locations are on nontraversable elements or have other errors. This is useful if you know your network locations are not all correct, but you want to run the analysis with the network locations that are valid. This is the default.</bullet_item><para/>
        ///     <bullet_item>Unchecked—Invalid locations will not be ignored. Do not run the analysis if there are invalid locations. Correct the invalid locations and rerun the analysis.</bullet_item><para/>
        ///   </bulletList>
        /// </xdoc></para>
        /// <para><xdoc>
        ///   <para>指定是否忽略无效的输入位置。</para>
        ///   <bulletList>
        ///     <bullet_item>选中 - 未定位的网络位置将被忽略，并且将仅使用有效的网络位置运行分析。如果位置位于不可遍历图元上或存在其他错误，分析也将继续。如果您知道您的网络位置并非全部正确，但您希望使用有效的网络位置运行分析，这将非常有用。这是默认设置。</bullet_item><para/>
        ///     <bullet_item>未选中—无效位置不会被忽略。如果存在无效位置，请不要运行分析。更正无效位置并重新运行分析。</bullet_item><para/>
        ///   </bulletList>
        /// </xdoc></para>
        /// <para></para>
        /// </summary>
        [DisplayName("Ignore Invalid Locations")]
        [Description("")]
        [Option(OptionTypeEnum.optional)]
        public object _Ignore_Invalid_Locations { get; set; } = null;


        /// <summary>
        /// <para>Solve Succeeded</para>
        /// <para></para>
        /// <para></para>
        /// <para></para>
        /// </summary>
        [DisplayName("Solve Succeeded")]
        [Description("")]
        [Option(OptionTypeEnum.derived)]
        public object _Solve_Succeeded { get; set; }


        /// <summary>
        /// <para>Output Allocation Lines</para>
        /// <para></para>
        /// <para></para>
        /// <para></para>
        /// </summary>
        [DisplayName("Output Allocation Lines")]
        [Description("")]
        [Option(OptionTypeEnum.derived)]
        public object _Output_Allocation_Lines { get; set; }


        /// <summary>
        /// <para>Output Facilities</para>
        /// <para></para>
        /// <para></para>
        /// <para></para>
        /// </summary>
        [DisplayName("Output Facilities")]
        [Description("")]
        [Option(OptionTypeEnum.derived)]
        public object _Output_Facilities { get; set; }


        /// <summary>
        /// <para>Output Demand Points</para>
        /// <para></para>
        /// <para></para>
        /// <para></para>
        /// </summary>
        [DisplayName("Output Demand Points")]
        [Description("")]
        [Option(OptionTypeEnum.derived)]
        public object _Output_Demand_Points { get; set; }


        /// <summary>
        /// <para>Output Network Analysis Layer</para>
        /// <para></para>
        /// <para></para>
        /// <para></para>
        /// </summary>
        [DisplayName("Output Network Analysis Layer")]
        [Description("")]
        [Option(OptionTypeEnum.derived)]
        public object _Output_Network_Analysis_Layer { get; set; }


        /// <summary>
        /// <para>Output Result File</para>
        /// <para></para>
        /// <para></para>
        /// <para></para>
        /// </summary>
        [DisplayName("Output Result File")]
        [Description("")]
        [Option(OptionTypeEnum.derived)]
        public object _Output_Result_File { get; set; }


        /// <summary>
        /// <para>Output Network Analysis Layer Package</para>
        /// <para></para>
        /// <para></para>
        /// <para></para>
        /// </summary>
        [DisplayName("Output Network Analysis Layer Package")]
        [Description("")]
        [Option(OptionTypeEnum.derived)]
        public object _Output_Network_Analysis_Layer_Package { get; set; }


        public SolveLocationAllocation SetEnv()
        {
            base.SetEnv();
            return this;
        }

    }

}